Par défaut, WordPress insère dans le flux d'actualité RSS tous les articles d'un site, ce qui est idéal pour la plupart des sites utilisant ce CMS. Si votre thème ou un de vos plugins fait appel aux formats d'articles (aside, video, gallery, ...), ils sont également tous inclus dans le flux de la même manière.
Sur WordPress, il existe des codes et fonctions pour exclure certains articles ou certaines catégories. Malheureusement, il n'y avait de pas de code pour exclure un format d'article de manière automatique (par exemple, tous les formats "Aside").
C'est désormais chose faite.
Format d'article et WordPress
Avant d'expliquer comment faire, voici une brève explication de ce qu'est un"post format" pour ceux qui ne connaissent pas.
Comme expliqué en introduction, votre thème ou un plugin peuvent activer des formats d'articles, le tout avec une simple ligne de code :
add_theme_support('post-formats', array( 'aside', 'gallery' ));
Sur WordPress, on peut activer ces formats d'article :
- gallery
- link
- image
- quote
- status
- video
- audio
- aside
C'est ensuite à votre thème ou à votre plugin d'utiliser et d'afficher de manière différente ces formats d'articles. C'est très pratique sur certains thèmes, comme par exemple l'excellent thème Diary de Peaxl.
Dans ce thème, les créateurs ont choisi d'utiliser les formats d'articles pour faire varier l'affichage des publications sur le site. Cela démontre d'ailleurs que l'on peut aller assez loin dans l'intégration de cette fonctionnalité dans les designs, ou encore comme ici dans l'administration de WordPress :
Exclure un Post Format du RSS de WordPress
Le hic, c'est qu'on utilise parfois les formats d'articles pour afficher du contenu plus décalé ou moins pertinent (ce qui d'ailleurs aurait été plus judicieux avec un custom post type, mais c'est un autre débat...).
Si vous souhaitez les exclure du flux d'actualité RSS de WordPress, il vous suffit d'utiliser le code suivant dans le fichier functions.php de votre thème, en pensant à remplacer le champ "terms" par le bon format d'article :
function seomix_filterpostformat($query) {
if ($query->is_feed) {
$query->set('tax_query',
array(
array(
'taxonomy' => 'post_format',
'terms' => 'post-format-aside',
'field' => 'slug',
'operator' => 'NOT IN'
)
)
);
}
return $query;
}
add_filter('parse_query','seomix_filterpostformat');
Et voilà, le tour est joué.
Merci à Nicolas Juen pour m'avoir donné cette piste de travail et à Willy Bahuaud pour une petite correction de bug à la fin.
Exclure d'autres éléments du flux RSS
Sachez que tout le rendu d'un flux RSS sur WordPress est modulable. Dans cet article, nous avons pris pour exemple le fait de retirer un format de contenu. Mais on peut faire la même chose dans ce CMS avec d'autres critères :
- Des types de contenus ;
- Des articles précis ;
- Des articles classés selon une taxonomie ou un terme de taxonomie (par exemple, exclure tous les articles ayant une étiquette, ou exclure tous ceux qui seraient associés à une catégorie précise).
Partez donc de votre besoin pour ensuite adapter le fonction pour filtrer selon votre besoin les flux RSS de WordPress.
10 Commentaires
Idée prochain article à moins que ça soit déjà fait mais j'utilise des Custom Post Type (et non pas des format d'article).
Or par défaut, WordPress a un flux distinct pour les articles et pour chaque custom pour type, l'idéal sera d'avoir un seul flux avec le tout.
Par contre, c'est vrai que plutôt de créer un type d'article personnalisé, je pourrais créer des 'formats' d'articles...
Autre idée article : ajouter des champs personnalisés obligatoires et supprimer l'éditor dans un format d'article de type vidéo par exemple ;)
Merci pour cette ressource, qui permet de pallier à certaines erreurs de conception (oui, car normalement on utilise un type custom) ce qui peut être très pratique pour un blog qu'on "récupère".
Un bout de code de plus dans fonctions.php ;-)
Merci pour cette astuce !
Pas si compliquée pour exclure un format de son flux rss finalement.
Je vais tester ça :)
Très bon tuto qui m'a bien aidé il y a quelques semaines de cela ;)
Merci Daniel
L'astuce qui tombe au moment où j'en ai besoin.. du SEO prévisionnel :p
Bonjour, tout d'abord merci pour votre article.
J'ai réalisé un site sous wordpress mais je me rends compte que les articles sont bien présents dans le flux du site mais rien d'autre.
Est-il possible de configurer ce flux rss créé automatiquement par wordpress pour que toutes les infos du site soient présentes dans le flux?
(par exemple j'ai des évènements sur le site : utilisation du plugin "The Events Calendar" que j'aimerai avoir dans le flux RRS)
Merci d'avance et bonne continuation!
Théoriquement, c'est tout à fait faisable, mais il faut voir cela au cas par cas, et ce n'est malheureusement pas le sujet de cet article.
Merci pour cette réponse Daniel.
Pouvez-vous me donner une simple précision sur le fichier de configuration de flux rss à modifier en général où un plugin disponible pour ce cas?
Faite une recherche sur Google et vous devriez pouvoir trouver votre bonheur : théoriquement, certains plugins peuvent le faire, tout comme des services externes (Feedburner ou aute) ou encore un hack du thème.
Bonsoir, cela marche très bien mais cela résolue mon problème à moitié. Pour ma part je cherche le moyen de désactiver / supprimer le flux de commentaires "site_url?feed=rss2&page_id=2".
Une idée une piste de recherche pour un profane ?
Laisser un commentaire