J’ai intentionnellement toutes les mêmes catégories dans WordPress et Discourse, mais il n’y a pas d’option pour attribuer la catégorie de l’article comme catégorie du sujet, je dois donc simplement la définir manuellement après chaque publication.
Cela semble être une fonctionnalité évidente, alors peut-être que je manque quelque chose ?
Vous pouvez le faire avec le filtre wpdc_publish_post_category. Ce serait quelque chose comme (code d’exemple non testé, mais peut fonctionner tel quel) :
Ensuite, quelle que soit la catégorie sélectionnée, le message serait toujours publié dans une catégorie dont le nom correspond au nom de la catégorie de message Wordpress. Assurez-vous que ces noms correspondent exactement, sinon cela ne fonctionnera pas.
Soutenir officiellement cela en tant que fonctionnalité serait semé d’embûches, car cela reposerait sur les utilisateurs maintenant des listes de catégories avec des noms identiques, supposerait que les modèles de catégories entre les deux plateformes restent les mêmes et devrait traiter le fait que le système de taxonomie de Wordpress est intrinsèquement mutable (c’est-à-dire qu’il ne sera pas le même sur chaque installation de Wordpress du plugin).
Vous pouvez le faire avec le filtre wpdc_change_post_category. Ce serait quelque chose comme (code d’exemple non testé, mais qui pourrait fonctionner tel quel) :
Vous voulez dire wpdc_publish_post_category ? wpdc_change_post_category ne semble pas exister réellement. C’est juste un nom de fonction personnalisé qui peut être n’importe quoi, n’est-ce pas ?
$wp_category_name = get_the_category( $post_id )[0]->name manque le ; de fermeture.
Après cela, j’obtiens une erreur trop peu d’arguments concernant function wpdc_change_post_category( $category, $post_id ) {. C’est peut-être parce que $category n’est pas défini ? Je testerai davantage plus tard.
Concernant l’ajout de cela comme fonctionnalité officielle, je ne pense pas que ce serait une boîte de Pandore, compte tenu de deux options :
L’option Forcer la mise à jour de la catégorie existe déjà. Celle-ci pourrait être étendue à une fonctionnalité qui force la synchronisation constante des catégories Discourse/WordPress.
ou
Peut-être qu’elles n’ont pas besoin d’être synchronisées du tout, mais plutôt que si une catégorie n’existe pas dans Discourse, elle est simplement créée.
Il y a une grande différence entre lire une liste de catégories via l’API (forcer la mise à jour de la catégorie) et synchroniser automatiquement les catégories elles-mêmes entre Wordpress et Discourse.
J’ai un type de publication personnalisé de policies avec une taxonomie personnalisée hiérarchique policy_categories sur deux niveaux (parent/enfant). Il y a environ 45 catégories enfants.
J’ai configuré WP Discourse pour publier dans une catégorie Discourse de policies, mais plutôt que de créer un grand ensemble de sous-catégories (après avoir lu sur ce forum), il semble préférable de créer les sous-catégories sous forme de tags.
J’aurai divers utilisateurs Wordpress publiant des policies avec différents niveaux d’expérience (si c’était seulement moi qui faisais cela, je les tagguerais à chaque fois). Donc, pour économiser une étape supplémentaire et probablement beaucoup de problèmes de support, idéalement, il y aurait un filtre pour que WP Discourse prenne les catégories Wordpress et ajoute les tags Discourse correspondants.
Je serais heureux de m’assurer que les catégories et les tags correspondent aux ID/slugs, etc., car je conserverai toutes les mises à jour de ceux-ci en tant qu’administrateur.
Bien qu’il n’existe pas de filtre de tags dédié, il existe un filtre général que vous pouvez utiliser : wpdc_publish_body. Dans votre cas, il ressemblera à ceci :
add_filter( 'wpdc_publish_body', function( $body, $remote_post_type, $post_id ) {
// code pour obtenir la catégorie de politique du post
if ( // s'il y a une politique de post ) {
$policy_tags = // mapper la catégorie de politique du post aux tags appropriés
$body['tags'] = $policy_tags
}
return $body;
}, 10, 3);