Vous avez mis en place votre blog et maintenant il ne vous reste plus qu’à le diffuser et pour cela rien de plus simple que d’utiliser les flux RSS/Atom pour permettre à vos fans à travers le monde de vous suivre. Mais seulement comment faire ?
Avec WordPress la gestion des flux RSS/Atom est devenu très simple et s’améliore à chaque version. Lorsque j’ai mis à jour mon thème, ce que j’essaie de faire régulièrement, je me suis posé la question, comment générer et gérer de manière simple des flux différentielles venant de mon blog, et je ne parle pas là, de leur diffusion via un service comme feedburner.
Un billet, un poste, un article, cela dépend de comment vous l’appelez est identifiable selon 4 grands critères dans un blog.
- sa date de parution
- son auteur
- sa catégorie
- ses tags
Ce qui est génial avec WordPress, c’est que depuis sa version 2.5, il est possible de fournir un flux personnalisé de votre blog à partir de chacun de ces critères et je vais vous dire comment.
Attention une connaissance des templates WordPress et du PHP sont des pré requis pour la suite de cette article
Voici les quelques lignes de codes que vous devrez utiliser pour afficher dans votre template WordPress le bon flux en fonction de la page/section de votre blog. Noter que pour utiliser à bien ces fonctions, il vous faudra pour chaque type de section de votre blog :
- déterminer l’identifiant, de la catégorie , de l’auteur et/ou du tag;
- passer cette identifiant à la fonction adéquate qui générera l’url adéquat du flux recherché;
Si vous êtes en train de surfer dans une section de catégorie, utiliser le code suivant :
<?php if (is_category()) { //detection de la page des categories $cat = get_the_category(); $theID = $cat[0]->cat_ID; $rss_link = get_category_feed_link($theID); $rss_description = 'flux RSS de la categorie : ' . single_cat_title(); } ?>
La méthode mise à notre disposition pour déterminer le lien vers votre flux est get_category_feed_link.
Si vous êtes sur une page regroupant les postes par tag, le code ci-dessous est plus approprié :
<?php if (is_tag()) { //detection de la page des tags $theID = intval(get_query_var('tag_id')); $rss_link = get_tag_feed_link($theID); $rss_description = 'flux RSS du tag : ' .single_tag_title(); } ?>
La méthode mise à notre disposition pour déterminier le lien RSS est get_tag_feed_link
Enfin pour générer le flux RSS reprenant les postes d’un de vos auteurs, utiliser le code ci-dessous :
<?php if (is_author()) { //detection de la page des auteurs $author = (isset($_GET['author_name'])) ? get_userdatabylogin($author_name) : get_userdata(intval($author)); $rss_link = get_author_feed_link($author->ID); $rss_description = 'flux RSS pour : ' . $author->nickname; } ?>
La méthode mise à notre disposition pour déterminer le lien RSS est get_author_feed_link
Afin d’être exhaustif, je reprends ici le cas le plus général, le flux de votre site en fonction de la date de parution de vos billets :
<?php //flux général accessible à partir de n'importe qu'elle page de votre blog $rss_link = get_bloginfo('rss2_url'); $rss_description = 'flux RSS pour : ' . get_bloginfo('name'); ?>
Par défaut, vos flux seront du type RSS 2.0, mais ne vous inquiétez pas, pour obtenir des flux de type Atom il suffit d’indiquer en deuxième argument de chacune des fonctions décrites ci-dessus le mot ‘atom’ et le tour est jouer 😉 .
Un manière simple d’inclure le résultat dans le template de votre blog serait d’utiliser le code suivant à l’endroit.
<a href="<?php echo $rss_link ?>" class="rss-link"><?php echo $rss_description; ?></a>
Les méthodes décrites ci-dessus existent depuis la version 2.5 de WordPress, mais comme elles sont peu documentées, les plus malins d’entre-vous qui ne les connaissent pas (j’ai fait partie de ces malins pendant longtemps 🙂 ) rajoutent simplement le code /feed/
en fin d’URL de ces différentes sections pour obtenir le même résultat.
L’avantage de ces méthodes par rapport à l’ajout de suffixe /feed/
et qu’elle ne nécessite pas la connaissance à priori de la syntaxe utilisée pour générer les liens dans WordPress.
Très intéressant, je ne savais pas que WP avait bossé sur ça. C’est vraiment puissant dès qu’un site atteint une taille critique niveau volume de parution.
Merci pour l’éclaircissement
je vais quand même essayer de tester ça au final, curieux de voir les possibilités… 😉