Possible de publier depuis Wordpress seulement une catégorie spécifiée ?

Nous avons intégré Discourse à notre site Wordpress, et la publication manuelle fonctionne. J’aimerais cependant configurer la publication automatique sur Discourse uniquement des articles qui entrent dans une catégorie spécifique. Je vois que nous pouvons exclure par tag, mais cela n’aide pas dans ce cas d’utilisation. J’aimerais inclure par catégorie. Est-ce possible et si non, cela pourrait-il être ajouté comme fonctionnalité ? Cela semble être une option très utile/importante et honnêtement, j’ai été assez surpris de constater qu’elle ne semble pas déjà présente. Merci.

Salut @vanclute,

Vous pouvez utiliser le filtre wpdc_publish_after_save pour y parvenir. Dans votre fichier functions.php de WordPress, ajoutez ce qui suit :

function publish_to_discourse( $force_publish, $post_id, $post ) {
  return has_term( TERM, TAXONOMY, $post );
}
add_filter( 'wpdc_publish_after_save', 'publish_to_discourse', 10, 3 );

Vous devrez remplacer TERM et TAXONOMY par ce que vous utilisez pour les « catégories » dans WordPress. Notez que TERM peut être un tableau, par exemple :

array( 'nom de catégorie 1', 'nom de catégorie 2')

Exemple

function publish_to_discourse( $force_publish, $post_id, $post ) {
  return has_term( array( 'news', 'blog' ), 'category', $post );
}
add_filter( 'wpdc_publish_after_save', 'publish_to_discourse', 10, 3 );
3 « J'aime »

Merci. J’aimerais vraiment ne pas avoir à modifier de fichiers WP, mais j’apprécie vos conseils.

Il n’est pas nécessaire de modifier quoi que ce soit :wink: Faites-le comme il se doit…

Installez un extrait de code ou similaire et faites-le via celui-ci (bien sûr, vous pouvez le faire en tant que plugin séparé si vous préférez ; aucune différence). Exactement la même chose que d’installer un composant de thème ou un plugin pour Discourse.

Et n’utilisez le fichier functions.php du thème enfant que lorsque la modification dépend du thème. Ce n’est pas le cas cette fois-ci.

1 « J'aime »