Tag : exclusion RSS

Comment exclure certains articles du flux RSS ou de la page d’accueil?

Voici une question que je me suis posé plusieurs fois au cours des derniers mois. Comme vous allez le voir la réponse fournie par Zeo est presque triviale.

Donc pour exclure une famille d’articles dans un blog WordPress, il faudra préalablement les mettre tous dans une même catégorie et ensuite créer une fonction afin d’exclure cette catégorie du flux RSS de votre blog wordpress. Dans le répertoire de votre thème (wp-content/themes/votretheme/), il suffit d’éditer le fichier functions.php et de coller à la fin ce petit bout de code :


function exclude_category($query) {
	if ( $query->is_feed ) {
		$query->set('cat', '-20');
	}
return $query;
}
add_filter('pre_get_posts', 'exclude_category');

Préalablement, vous aurez bien entendu trouvé le numéro de votre catégorie dans la page manage/categorie dans le dashboard de worpress, il suffit ensuite de remplacer dans l’exemple ci-dessus les termes ‘-20’ par ‘-votrenumérodecatégorie’ en n’oubliant pas le signe moins. Notez aussi qu’il est possible d’exclure plusieurs catégories en mettant des virgules ‘-2,-8,-26’…

Pour exclure une catégorie d’articles de l’affichage sur la page d’accueil de votre site c’est pareil sauf qu’il faut remplacer is_feed par is_home comme dans l’exemple ci-dessous :


function exclude_category($query) {
	if ( $query->is_home ) {
		$query->set('cat', '-25');
	}
return $query;
}
add_filter('pre_get_posts', 'exclude_category');

Simple non? L’intérêt avec cette fonction est que vous pouvez contrôler où va s’afficher l’information. Pour mon cas les articles de notes courtes ne partent pas dans le flux RSS pour des raisons évidentes de ligne éditoriale mais aussi pour donner une primeur aux personnes qui prennent la peine de visiter le site… Et oui je donne aussi des informations dans ces notes courtes!

Une autre application serait d’utiliser le flux RSS pour diffuser de la publicité sans qu’elle s’affiche sur le site/blog (deuxième exemple de code), Valleywag fait quelque chose dans le style.

Update : Bien entendu cette méthode marche avec tous les types de pages de wordpress : is_search pour les pages de recherche, is_category pour les pages de catégories, is_archive pour les archives, is_single pour les pages d’articles (intéressant pour faire apparaitre de l’information sur la page d’accueil mais pas sur la page dédiée à l’article), is_tag pour les pages de tag, etc…