Tag : catégorie

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…


Exclure certains articles de votre flux RSS

Certains blogs utilisent de plus en plus des notes courtes ou écrivent des articles qui ne sont pas forcément dans la ligne éditoriale du blog. Si jamais vous ne souhaitez pas tout envoyer dans le flux RSS de votre blog il suffit d’exclure la catégorie de l’article du flux.

Alors pour faire cela il faut mettre un peu les mains dans le code et faire ceci dans la page « functions.php » localisée dans le répertoire de votre thème de blog (wp-content/themes/) :

function myFilter($query) {
if ($query->is_feed) {
$query->set('cat','-5');
}

return $query;
}

add_filter('pre_get_posts','myFilter');

Pour identifier le numéro de la catégorie à exclure il faut aller dans Admin PanelManage Categories, simple comme bonjour non?

Zeo indique que cette manip permet aussi de ne pas afficher les articles de certaines catégories sur la homepage de votre blog. Il suffit de faire ces adaptations :

function myFilter($query) {
if ($query->is_feed || $query->is_home) {
$query->set('cat','-5');
}

return $query;
}

add_filter('pre_get_posts','myFilter');

Maintenant vous savez quoi faire!

Via Jangro