Custom Post Type et RSS dans WordPress

Flux RSS de WordPress et Custom Post TypesQuand vous créez un nouveau format d’article dans WordPress (les fameux Custom Post Type), ceux-ci ne s’ajoutent pas automatiquement dans votre flux d’actualité RSS.

Il faut rajouter manuellement un code pour cela, ou utiliser une extension.

Si comme moi vous fuyez les plugins comme la peste, il est possible d’ajouter les Custom Post Type de WordPress à votre flux RSS via  votre thème.

Les customs Post Type dans votre RSS

Ouvrez le répertoire de celui-ci et cherchez le fichier functions.php. Ajoutez dans celui-ci le code suivant pour ajouter tous vos Custom Post Type dans votre flux RSS :

Merci à ScreenFeed pour la correction du 1er code

function myfeed_request($qv) {
    if (isset($qv['feed']) && !isset($qv['post_type']))
        $qv['post_type'] = array_merge( array('post' => 'post'), get_post_types( array('show_ui' => true, '_builtin' => false) ) );
     return $qv;
}
add_filter('request', 'myfeed_request');

Sélectionnez vos Custom Post Type

Si toutefois vous voulez sélectionner les Custom Post Type à afficher, utilisez plutôt le code suivant :

function myfeed_request($qv) {
	if (isset($qv['feed']) && !isset($qv['post_type']))
		$qv['post_type'] = array('post', 'histoire', 'film', 'recette', 'arbre');
	return $qv;
}
add_filter('request', 'myfeed_request');

Dans la ligne contenant le terme array, « Post » correspond aux articles standards, et le reste aux Custom Post Type de WordPress que vous avez créé et que vous désirez afficher.

Ce code n’est malheureusement pas de moi. Vous trouverez la source sur le site officiel de WordPress : http://core.trac.wordpress.org/ticket/12943

Daniel Roch

Fondateur, conférencier, auteur, consultant et expert SEO WordPress

5 Commentaires

Screenfeed Le 01 mars 2012 à 15h18
Bûûûûp! Je te souhaite bien du plaisir avec la première fonction. Là tu ajoute dans le RSS : les pages, attachments, revisions, nav_menu_item, etc... :)

De plus, tu les ajoute à tous les flux RSS.
Ceci sera mieux :
[pastacode lang="bash" provider="manual"]function myfeed_request($qv) {
if (isset($qv['feed']) && !isset($qv['post_type']))
$qv['post_type'] = array_merge( array('post' => 'post'), get_post_types( array('show_ui' => true, '_builtin' => false) ) );
return $qv;
}
add_filter('request', 'myfeed_request');[/pastacode]

A+
Daniel Roch Le 01 mars 2012 à 16h07
Exact. Je corrige le code de ce pas. Merci beaucoup. ;)
Bitpxl Le 02 mars 2012 à 4h15
Et si vous souhaitez simplement créer un flux séparé de vos custom post type :

site.com/feed/?post_type=voyage

+ custom taxonomy

site.com/feed/?post_type=voyage&genre=asie

Comme ça on est complet sur le sujet :D
Tony Le 31 mars 2012 à 16h22
J'ai déjà eu l'occasion de créer un custom post type mais je n'ai même pas pris la peine de vérifier les flux RSS. Etant donnée l'importance des flux pour l'apport de visiteurs et pour le référencement (merci les agrégateurs et annuaires RSS) je vais garder ce bout de code sous la main. Merci pour cette astuce.
Manu Le 20 mai 2014 à 16h41
Bonjour,
Merci pour cet article.
Auriez l'amabilité de m'aider sur un point ?
Comment coder que je ne veux (dans les flux RSS) que les Custom Post Type "evenements" qui appartiennent à la Custom taxonomy "X" ?
Merci de votre aide.

Laisser un commentaire

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