WordPress, ajouter du contenu dans son flux RSS !
Alors pourquoi ajouter du contenu dans son flux RSS ? Et bien pour plusieurs raisons, comme par exemple pour y injecter un copyright, des éléments esthétiques ou pourquoi pas de la pub !
La technique que je vais vous montrer ici vous permettra d'injecter du contenu avant et après le titre et avant et après le contenu de chaque item ! Vous aurez donc un bon contrôle de ce qui sortira de votre flux RSS.
La méthode
On va se servir du fichier functions.php qui se trouve dans le dossier de votre thème courant. Il est aussi possible de passer par un plugin ou par le fichier my-hacks.php (à mettre à la racine du blog) pour que la modification soit active pour n'importe quel thème.
La fonction d'injection pour le titre RSS
Ouvrez votre fichier functions.php, si il n'existe pas, créez-le (sans oublier les balises php <?php ?>).
Placez le code suivant dedans:
$content = 'Texte avant le titre '.$content.' et après le titre !';
return $content;
}
add_filter('the_title_rss', 'gotitlerss');
Vous voyez, c'est relativement simple, il vous suffit d'écrire ce que vous voulez avant et après la variable $content !
La fonction d'injection pour le contenu RSS
Ouvrez votre fichier functions.php, si il n'existe pas, créez-le.
Placez le code suivant dedans:
$content = 'Texte avant le contenu '.$content.' et après le contenu !';
return $content;
}
add_filter('the_excerpt_rss', 'gopostrss');
add_filter('the_content_rss', 'gopostrss');
Idem que pour le titre, il vous suffit d'écrire ce que vous voulez avant et après la variable $content !
Et vous voyez qu'ici il y a 2 filtres, un pour l'extrait RSS et l'autre pour le contenu complet RSS.
/!\ Hack pour la fonction d'injection pour le contenu RSS pour WordPress 2.5-
Il semblerait qu'avec certaines versions de wordpress, le filtre "the_content_rss" ne fonctionne pas ! J'ai constaté ça sur une version 2.5. Voici un hack qui va vous permettre de contourner ce bug:
Placez le code suivant dedans:
if(is_feed()){
$content = 'Texte avant le contenu '.$content.' et après le contenu !';
}
return $content;
}
add_filter('the_content', 'gopostrss');
En fait on utilise le filtre "the_content" qui agit sur tout le contenu, même dans un billet. Du coup on applique la condition is_feed() pour n'agir que sur le contenu du flux !
Exemple d'utilisation - Ajout de la catégorie après le titre
Voilà un exemple concret qui va inclure le nom de la catégorie après le titre, à titre purement informatif.
$pcat = "";
foreach((get_the_category()) as $cat) {
$pcat .= ' ('.$cat->cat_name . ')';
}
$content = $content.$pcat;
return $content;
}
add_filter('the_title_rss', 'gotitlerss');
Ce qui transformera vos titres "Titre du billet" en "Titre du billet (catégorie du billet)"
Exemple d'utilisation - Ajout d'une pub image en fin de contenu
Voilà qui devrait ravir vos partenaires si vous avez un grand nombre d'abonnés.
$content = $content.' <hr /> <a href="http://sitepartenaire.com/"><img src="http://sitepartenaire.com/pub.jpg alt="pub" /></a> <hr />';
return $content;
}
add_filter('the_excerpt_rss', 'gopostrss');
add_filter('the_content_rss', 'gopostrss');
Ce que j'aime avec l'injection de pub, c'est l'effet pervers que ça peut avoir pour les voleurs de flux qui du coup diffusent vos publicités gratuitement. Bon le 2ème effet kisskool c'est que du coup les pubs de vos annonceurs risquent de se retrouver sur des sites douteux ... mais "c'est le jeu ma pauv' Lucette !"
Conclusions
Voilà une façon simple de prendre le contrôle de votre flux, ce qui n'est pas toujours évident quand on utilise un CMS ! Merci qui ? Euh ... merci WordPress
iTypo: thème Wordpress gratuit
Guide pour mieux gérer vos emails via gmail (multicompte, redirection, ...)
Comment réussir vos concours sur vos blogs ?
Brève Wordpress: 40 liens, thèmes, plugins et astuces en tout genre !
Merci beaucoup pour ces infos intéressantes
C’est fou tout ce qu’on peut faire avec les fonctions du style add_filter…
Rahh on est déjà envahi par la pub pour un oui ou pour un non.
Par pitié, épargnez les flux RSS
@jbj
C’est clair, voilà comment on se retrouve avec des milliers de plugins
@Thomas
Bah ça peut aussi permettre d’alléger les pubs d’un site, comme ça on reparti dans le flux et sut le site. Bon après c’est clair qu’adbloc ne pourras pas les bloquer ^^
Des bijoux comme ton blog, la blogosphère en manque
Merci beaucoup pour l’astuce, c’est exactement ce que je cherchais ! Petite question, si je souhaite insérer du code php (genre les derniers articles de la catégorie) est-ce que tu sais comment faire ? Merci encore !
Merci beaucoup pour l’astuce,c’est exactement ce que je cherchais ! j’ai resolu un grand probleme,Merci encore !
Bonjour, je souhaiterais ajouter un fichier mp3 dans une des pages de notre blog, mais apparemment ce format de fichier n’est pas accepté… help!
Excellent tuto dude, merci. Je viens de modifier mes flux pour qu’ils soient moins bordéliques. Trop simple!
merci pour l’astuce! Ca fait un moment que je galérais sur ce « problème »
Merci beaucoup, ca m’a été très utile
bonjour, je voulais savoir comment on cree un flux RRS
Hi is there maybe an English version of this post?? Merci beaucoup!
Merci c’est exactement ce que je recherchais, merci google de m’avoir conduit à ce site que je bookmark direct
Petite question au passage :
Savez-vous s’il est possible de changer le flux de place.
exemple au lieu de http://www.webinventif.fr/feed plutôt http://www.webinventif.fr/rss
Merci à vous.
Merci, une petite fonction bien pratique. Que j’ai modifier pour retirer la description de mon flux.
function gopostrss($content) {
if(is_feed()){
$content = ‘Remplace votre description’;
}
return $content;
}
add_filter(‘the_content’, ‘gopostrss’);
Merci a ++
Et hop ! Un plugin échangé contre 4 lignes de code !
Je prends !
Merci du tuyau
Ca le fait, je prends aussi ! Merci pour ce bout de code.
Pour ma part, pour que cela fonctionne j’ai dû utiliser un return plutôt qu’un echo. A part ça, ça marche nickel.
Merci beaucoup !
Merci beaucoup, je vais tester ça !
Une question : est-ce qu’il y aurait un moyen de, non pas ajouter, mais RETIRER du contenu ? Plus précisément, effacer automatiquement les 25 premières caractères de tous les titres ? Je ne vais pas expliquer pourquoi je voudrais faire ça, ça prendrait trop de temps ^^’