Exclure de la home et du flux RSS les billets d’une catégorie dans WordPress
Admettons que votre catégorie a ‘236’ pour ID. Pour trouver l’ID d’une catégorie, aller dans le menu d’administration des catégories, survoler le lien de ladite catégorie et regarder le numéro dans la barre de statut au bas de votre navigateur.
Pour exclure de la home, éditer le fichier index.php de votre template et juste avant la boucle if (have_posts()… insérer le code suivant qui va modifier la query wordpress :
if ( is_home() ) {
query_posts($query_string . '&cat=-236');
}
On ajoute la partie de test pour la home au cas où le fichier index.php soit utilisé pour d’autres modes comme les archives par exemple.
Pour exclure plusieurs catégories, il suffit de cette syntaxe :
query_posts($query_string . '&cat=-236,-237,-238');
Pour exclure du flux, on modifie (ou crée) le fichier functions.php du template en ajoutant le filtre suivant :
// Exclude categories from feed.
function myFeedExcluder($query) {
if ($query->is_feed) {
$query->set('cat','-236');
// $query->set('cat','-236,-237,-238') pour en exclure plusieurs
}
return $query;
}
add_filter('pre_get_posts','myFeedExcluder');
A noter qu’on pourrait utiliser le même filtre pour exclure de la home en ajoutant le test is_home en plus de is_feed. Mais c’était pour montrer la technique de base WordPress pour exclure une catégorie de la home dans le premier exemple.