Ajouter des Custom Post Types (CPT) au flux RSS de ton WordPress

Ajouter vos CPT au flux RSS de WordPress
WordPress Lecture 4 minutes • 21 décembre 2019

Les Custom Post Types (CPT pour les intimes) ou Types d'Article Personnalisés en Français, te permettent de faire des miracles quand il s'agit de créer et d'organiser son thème WordPress. Pour celles et ceux qui auraient loupé le train en marche, voici pourquoi et comment créer tes Custom Post Types.
Ceci étant dit, il faut savoir que WordPress ne prend dans son flux RSS que les Articles. Et non, même pas les Pages et encore moins les Custom Post Types.

Alors remédions à cela tout de suite !
 

Logo Flux RSS
Logo du flux RSS, patrimoine historique d'Internet

Ajouter tous mes CPT au flux RSS de WordPress

Ajouter tous les CPT au flux RSS de WordPress est très simple.
Dans le fichier functions.php, il suffit d'ajouter le code suivant :

function ajouter_cpt_dans_flux_rss($query) {
    if ($query->is_feed() && $query->is_main_query()) {
        // Récupère tous les types de contenus publics
        $post_types = get_post_types(['public' => true, '_builtin' => false], 'names');
        
        // Ajoute 'post' pour garder les articles classiques dans le flux
        $post_types[] = 'post';

        $query->set('post_type', $post_types);
    }
    return $query;
}
add_action('pre_get_posts', 'ajouter_cpt_dans_flux_rss');


Explication :

  • Ligne 4 : get_post_types(['public' => true, '_builtin' => false], 'names') : récupère tous les CPT personnalisés qui sont publics (exclut post, page, etc.).
  • Ligne 7 : post_types[] = 'post' : on ajoute manuellement les articles de blog classiques.
  • Ligne 13 : pre_get_posts : hook qui permet de modifier la requête principale, ici pour les flux RSS (is_feed()).

Ajouter certains CPT au flux RSS de WordPress

Il est aussi possible de n'ajouter que certains Custom Post Types à ton flux RSS. Une option très intéressante qui te laisse une grande souplesse.
De la même façon que juste au-dessus, il faut modifier le fichier functions.php en ajoutant le code suivant :

function ajouter_cpt_specifiques_dans_flux_rss($query) {
    if ($query->is_feed() && $query->is_main_query()) {
        // Définir les types de contenu à inclure dans le flux RSS
        $post_types = ['post', 'recettes', 'tutoriels'];
        $query->set('post_type', $post_types);
    }
    return $query;
}
add_action('pre_get_posts', 'ajouter_cpt_specifiques_dans_flux_rss');

Concrètement, je viens d'ajouter à mon flux RSS :

  • Post = les Articles par défaut de WordPress
  • Recettes = mon CPT  dont l'identifiant est "recettes"
  • Tutoriels = mon CPT  dont l'identifiant est "tutoriels"

Explications :

  • On remplace la détection automatique des CPTs par une liste explicite : ['post', 'recettes', 'tutoriels']
  • Cela garantit que seuls ces 3 types de contenus apparaîtront dans le flux principal (/feed/)

 

Voir les flux RSS générés par WordPress

WordPress génère plusieurs flux RSS dont les principaux sont les suivants :

  • Flux RSS principal de votre site : https://www.monsite.fr/feed
  • Flux RSS des commentaires : https://www.monsite.fr/comments/feed
  • Flux RSS des Archives par année : https://www.monsite.fr/2019/feed

Affiche le flux RSS d'un Custom Post Type

Ici nous avons envie d'afficher le flux RSS de notre CPT "recettes", rien de plus simple :
https://www.monsite.fr/feed/?post_type=recettes

Affiche le flux RSS d'un Custom Post Type selon une Taxonomie

Soyons fou, tu veux maintenant afficher le flux RSS de tes "recettes" classées comme "creole" dans la Taxonomy  "origine" :
https://www.monsite.fr/feed/?post_type=recettes&origine=creole
 

Des plugins pour aller plus loin dans la gestion des flux RSS WordPress

Extension WPNote globaleInstallations actives
WP RSS Aggregator4.5 / 5+ de 50 000
FEEDZY RSS Feeds4.7 / 5+ de 50 000
Category Specific RSS4.4 / 5+ de 4 000

Utilises-tu l'une de ces extensions WordPress pour ton flux RSS ? Dis-moi en commentaires si j'en ai oublié (oups) ou partage tes bons plans sur le sujet !

Besoin d'un expert pour améliorer les performances de votre site internet ?

Contactez-moi pour en discuter ensemble !
Recevez un audit et une estimation gratuite des optimisations à apporter à votre site web.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *