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’…
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…
13 commentaires sur “Comment exclure certains articles du flux RSS ou de la page d’accueil?”
Les commentaires sont fermés.
Henri, autrement, tu peux utiliser le plugin Advanced category excluder non ?
Petite analyse et explications rapides sur l’Ajblog : http://www.ajblog.fr/plugin-wo.....y-excluder
Oui, c’est une pub éhontée. ;)
Mais le plugin répond à pas mal de mes besoins en la matière.
Tiens je ne le connaissais pas celui-ci ;) Je pense qu’il doit fonctionner de la même manière, après c’est un choix d’ajouter un nouveau plugin ou de hard coder la fonction dans son thème, ce que j’ai préféré faire car j’ai déjà beaucoup trop de plugins qui tournent et consomment de la mémoire sur le serveur!
Oh misère, c’est tellement simple que j’en verserais presque une larme ! En tout cas merci, cette fonction est bien moins complexe que ma méthode ^^
C’est clair que c’est un des « problèmes » de WordPress, on veut lui faire tellement de choses, qu’on ajoute des tonnes de plugins.
Après, tout dépend de la qualité d’inclusion des plugins dans le Core de WordPress, tu peux avoir une trentaine de plugins bien intégrés et cela ne pose aucun problème et d’un autre côté avori un ou deux plugins codés avec les pieds qui te foutent la merde.
Arf bien joué. Perso j’avais fait ça à la main avec un if + in_category mais c’est bien plus clean comme ça ! Merci Henri.
Est-ce qu’on peut faire pareil pour les résultats de recherche ?
Yes essayes de reprendre le même code mais avec is_search au lieu de is_feed et cela devrait marcher super bien!
Merci, ça fonctionne parfaitement ! Je cherchais justement à faire cela… et ton tuto tombe du ciel :p
Je me demandais justement concrètement comment exclure une catégorie de la liste principale des articles pour la caser dans la marge, et grâce à toi, je gagne un temps fou dans mes recherches documentaires ! Merci henri ! :-)
Merci de l’information toujours utile
Excellente astuce .
Merci ;)
Merci pour ce post. C’est justement ce que je cherchais ! :)
Bonjour, ça marchait très bien jusqu’à aujourd’hui. Je viens de faire une mise à jour de WordPress vers la 3.1 et ça ne marche plus.
Suis-je le seul dans ce cas ? Merci.