WordPress est livré avec des flux RSS intégrés par défaut. Vous pouvez modifier les flux par défaut en ajoutant du contenu personnalisé à vos flux RSS, ou même en ajoutant une vignette de publication à vos flux RSS. Les flux RSS et Atom par défaut sont suffisants pour la plupart des utilisateurs, mais vous souhaiterez peut-être créer un flux RSS personnalisé pour diffuser un type de contenu spécifique. Dans cet article, nous allons vous montrer comment créer des flux RSS personnalisés dans WordPress.
Veuillez noter que ce tutoriel n’est pas destiné aux utilisateurs débutants de WordPress. Si vous êtes un débutant et que vous souhaitez toujours l’essayer, veuillez le faire sur une installation locale.
Comme toujours, vous devez créer une sauvegarde complète de votre site Web WordPress avant d’apporter des modifications majeures à un site Web en direct.
Cela dit, commençons avec votre premier flux RSS personnalisé dans WordPress.
Supposons que vous souhaitiez créer un nouveau flux RSS qui affiche uniquement les informations suivantes :
- Titre
- Lien
- date de publication
- Auteur
- Extrait
La première chose que vous devez faire est de créer le nouveau flux RSS dans votre thème functions.php
fichier ou dans un plugin spécifique au site :
add_action('init', 'customRSS'); function customRSS(){ add_feed('feedname', 'customRSSFunc'); }
Le code ci-dessus déclenche le customRSS
fonction, qui ajoute le flux. La fonction add_feed a deux arguments, feedname et une fonction de rappel. Le nom du flux constituera votre nouvelle URL de flux yourdomain.com/feed/feedname
et la fonction de rappel sera appelée pour réellement créer le flux. Notez le nom du flux, car vous en aurez besoin plus tard.
Une fois que vous avez initialisé le flux, vous devrez créer la fonction de rappel pour produire le flux requis, en utilisant le code suivant dans le functions.php
fichier ou dans un plugin spécifique au site :
function customRSSFunc(){ get_template_part('rss', 'feedname'); }
Le code ci-dessus utilise le get_template_part
pour créer un lien vers un fichier de modèle séparé, mais vous pouvez également placer le code RSS directement dans la fonction. En utilisant get_template_part
, nous pouvons garder la fonctionnalité séparée de la mise en page. le get_template_part
La fonction a deux arguments, slug et name, qui rechercheront un fichier modèle avec le nom au format suivant, en commençant par le fichier en haut (s’il ne trouve pas le premier, il passera au second, et bientôt):
wp-content/themes/child/rss-feedname.php
wp-content/themes/parent/rss-feedname.php
wp-content/themes/child/rss.php
wp-content/themes/parent/rss.php
Pour les besoins de ce didacticiel, il est préférable de définir le slug sur le type de flux que vous créez (dans ce cas : rss) et le nom sur le nom du flux configuré précédemment.
Une fois que vous avez demandé à WordPress de rechercher le modèle de flux, vous devez le créer. Le code ci-dessous produira la mise en page du flux avec les informations que nous avons répertoriées précédemment. Enregistrez ce fichier dans votre dossier de thème en tant que fichier de modèle slug-name.php configuré dans le get_template_part
une fonction.
<?php /** * Template Name: Custom RSS Template - Feedname */ $postCount = 5; // The number of posts to show in the feed $posts = query_posts('showposts=" . $postCount); header("Content-Type: '.feed_content_type('rss-http').'; charset=".get_option("blog_charset'), true); echo '<?xml version="1.0" encoding="'.get_option('blog_charset').'"?'.'>'; ?> <rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" <?php do_action('rss2_ns'); ?>> <channel> <title><?php bloginfo_rss('name'); ?> - Feed</title> <atom:link href="<?php self_link(); ?>" rel="self" type="application/rss+xml" /> <link><?php bloginfo_rss('url') ?></link> <description><?php bloginfo_rss('description') ?></description> <lastBuildDate><?php echo mysql2date('D, d M Y H:i:s +0000', get_lastpostmodified('GMT'), false); ?></lastBuildDate> <language><?php echo get_option('rss_language'); ?></language> <sy:updatePeriod><?php echo apply_filters( 'rss_update_period', 'hourly' ); ?></sy:updatePeriod> <sy:updateFrequency><?php echo apply_filters( 'rss_update_frequency', '1' ); ?></sy:updateFrequency> <?php do_action('rss2_head'); ?> <?php while(have_posts()) : the_post(); ?> <item> <title><?php the_title_rss(); ?></title> <link><?php the_permalink_rss(); ?></link> <pubDate><?php echo mysql2date('D, d M Y H:i:s +0000', get_post_time('Y-m-d H:i:s', true), false); ?></pubDate> <dc:creator><?php the_author(); ?></dc:creator> <guid isPermaLink="false"><?php the_guid(); ?></guid> <description><![CDATA[<?php the_excerpt_rss() ?>]]></description> <content:encoded><![CDATA[<?php the_excerpt_rss() ?>]]></content:encoded> <?php rss_enclosure(); ?> <?php do_action('rss2_item'); ?> </item> <?php endwhile; ?> </channel> </rss>
Ce code de modèle générera un flux RSS suivant la disposition ci-dessus. le postCount
La variable vous permet de contrôler le nombre de messages à afficher dans votre flux. Le modèle peut être modifié selon les besoins pour afficher toutes les informations dont vous avez besoin (par exemple, publier des images, des commentaires, etc.).
le the_excerpt_rss
affichera l’extrait de chaque message, et pour les messages qui n’ont pas d’extraits, il affichera les 120 premiers mots du contenu du message.
Enfin, pour afficher votre flux, vous devrez d’abord vider vos règles de réécriture WordPress. Pour ce faire, le moyen le plus simple consiste à vous connecter à l’administrateur WordPress et à cliquer sur Paramètres -> Permaliens. Une fois ici, cliquez simplement Sauvegarder les modifications, qui videra les règles de réécriture.
Vous pouvez désormais accéder à votre nouveau flux sur yourdomain.com/feed/feedname
, où feedname était le nom du flux que vous avez donné dans le add_feed
fonctionner plus tôt.
Le W3C propose une service de validation de flux, vous permettant de valider le flux résultant.
Dépannage
- J’obtiens une erreur 404 lorsque j’essaie d’afficher mon flux !
- Vérifiez si vous utilisez le bon nom de flux dans votre URL. Il doit s’agir de celui que vous avez fourni dans le
add_feed
une fonction - Si vous avez le nom de flux correct, vos règles de réécriture n’ont peut-être pas été correctement vidées. Enregistrez à nouveau vos permaliens juste pour être sûr.
- Si vous avez réenregistré vos permaliens, vous pouvez forcer un vidage de réécriture via le fichier functions.php de votre thème. Ajoutez le code suivant à la fonction customRSS que nous avons créée précédemment. Assurez-vous d’ajouter le code après le
add_feed
une fonction.
global $wp_rewrite; $wp_rewrite->flush_rules();
- Vérifiez si vous utilisez le bon nom de flux dans votre URL. Il doit s’agir de celui que vous avez fourni dans le
- Une fois que vous avez ajouté ceci, rechargez votre site WordPress. REMARQUE : Il doit être retiré immédiatement après utilisation. Une fois suffit pour que les règles soient vidangées.
- À l’aide du validateur de flux W3C, des détails spécifiques doivent être fournis là où votre flux n’est pas validé. Modifiez le fichier de modèle de flux pour résoudre ces problèmes
- Ceci est courant lorsque le langage RSS n’a pas été configuré sur votre installation WordPress. Pour ce faire, vous pouvez ajouter le code suivant à votre thème
functions.php
fichier, pour mettre à jour l’option de langue.
function rssLanguage(){ update_option('rss_language', 'en'); } add_action('admin_init', 'rssLanguage');
Nous espérons que cet article vous a aidé à créer vos propres flux RSS personnalisés dans WordPress. Faites-nous savoir comment et pourquoi vous utiliserez des flux RSS personnalisés sur votre site WordPress en laissant un commentaire ci-dessous.