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 miniature de publication à vos flux RSS. Les flux RSS et Atom par défaut suffisent à 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 WordPress de niveau débutant. Si vous êtes débutant et que vous souhaitez quand même 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 par 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 à faire est de créer le nouveau flux RSS dans le fichier functions.php
de votre thème ou dans un plugin spécifique au site :
add_action('init', 'customRSS'); function customRSS(){ add_feed('feedname', 'customRSSFunc'); }
Le code ci-dessus déclenche la fonction customRSS
, 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 votredomaine.com/feed/feedname
et la fonction de rappel sera appelée pour créer réellement 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 fichier functions.php
de votre thème ou dans un plugin spécifique au site :
function customRSSFunc(){ get_template_part('rss', 'feedname'); }
Le code ci-dessus utilise la fonction get_template_part
pour créer un lien vers un fichier modèle distinct, mais vous pouvez également placer le code RSS directement dans la fonction. En utilisant get_template_part
, nous pouvons garder la fonctionnalité distincte de la mise en page. La fonction get_template_part
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 (si elle ne trouve pas le premier, on passera au second, et ainsi de suite) :
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 devrez le créer. Le code ci-dessous produira la mise en page du flux avec les informations que nous avons énumérées précédemment. Enregistrez ce fichier dans votre dossier de thème en tant que fichier modèle slug-name.php configuré dans la fonction get_template_part
.
<?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. La variable postCount
vous permet de contrôler le nombre de publications à 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.).
La fonction the_excerpt_rss
affichera l'extrait de chaque message, et pour les messages qui n'ont pas d'extraits, elle 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. Le moyen le plus simple de procéder est de vous connecter à l'administrateur WordPress et de cliquer sur Paramètres -> Permaliens. Une fois ici, cliquez simplement sur Enregistrer les modifications, ce qui videra les règles de réécriture.
Vous pouvez désormais accéder à votre nouveau flux sur votredomaine.com/feed/feedname
, où feedname était le nom du flux que vous avez donné plus tôt dans la fonction add_feed
.
Le W3C propose un service de validation de flux, vous permettant de valider le flux résultant.
Je reçois une erreur 404 lorsque j'essaie d'afficher mon flux !
Si vous avez le nom de flux correct, vos règles de réécriture n'ont peut-être pas été vidées correctement. Enregistrez à nouveau vos permaliens juste pour être sûr.
Si vous avez réenregistré vos permaliens, vous pouvez forcer une réécriture via le fichier function.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 la fonction add_feed
.
global $wp_rewrite; $wp_rewrite->flush_rules();
Une fois que vous avez ajouté ceci, rechargez votre site WordPress. REMARQUE : Celui-ci doit être retiré immédiatement après utilisation. Une fois suffit pour que les règles soient vidées.
Mon flux n'est pas validé !
Je reçois une erreur de validation
function rssLanguage(){ update_option('rss_language', 'en'); } add_action('admin_init', 'rssLanguage');
Modifiez le deuxième argument de la fonction update_option pour changer la langue en celle dont vous avez besoin. Consultez la liste complète des codes de langue RSS.
Une fois le code ci-dessus ajouté à votre fichier de fonctions, chargez l'écran d'administration WordPress pour qu'il prenne effet. Après cela, le code doit être supprimé de votre fichier de fonctions WordPress. Le charger une fois suffit pour configurer le paramètre rss_langage.
Cela peut également être fait directement dans la base de données, en recherchant l'option rss_langage dans la table wp_options.
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.