Ajout automatique d’une image au flux RSS

Publié le 2 février 2012 par Noann

À l'origine, WordPress donne un flux rss dépourvu d'image.

Pour ajouter une image au flux, deux petits bouts de code ; intégrer l'un ou l'autre au fichier functions.php du thème :

1) Ajout de l'image liée à l'article :

Toute image insérée dans un article est, par défaut, liée à cet article (liste dans le tableau de bord sous : "médias -> bibliothèque"). Le code suivant permet de l'intégrer dans le flux, après l'extrait (*) :

add_filter ( "the_excerpt_rss", "ImgAjout" );

function ImgAjout ($content) {
global $post;
$post_img = '<img src=" '.nt_post_image ($post->ID).' ">';
$content = $content.'<br/>'.$post_img;
return $content; }

2) Ajout du thumbnail (en french : miniature ou image à la une) :

Si des miniatures sont définies, le code suivant permet de les ajouter au flux :

// ajouter la fonctionnalité thumbnails à WP :

if ( function_exists ( 'add_theme_support' ) ) { add_theme_support ( 'post-thumbnails' ); }

// ajouter la miniature :

add_filter ( "the_excerpt_rss", " ImgAjout" );
function  ImgAjout ($content) {
global $post;
$post_img = get_the_post_thumbnail ($post->ID,  'thumbnail');
$content = $content.'<br/>'.$post_img;
return $content; }

Deux petites remarques sur la fonction "get_the_post_thumbnail" :

Cette fonction fournit une adresse complète codée en html, contrairement à "nt_post_image" qui ne donne que le nom du fichier, elle est donc utilisable telle qu'elle.

Le second paramètre de cette fonction est soit 'thumbnail', soit 'medium', soit 'large', selon la taille que l'on veut pour l'image. Les tailles maximales sont définies dans le tableau de bord sous "Réglages -> médias"

Enfin, un troisième paramètre peut être ajouté : une array de balises de formatage, par exemple :

get_the_post_thumbnail (get_the_ID(), 'medium', array ( 'align' => 'right', 'style' => 'margin: 0 0 10px 10px') );

...ce code définit l'usage d'une image de taille 'medium' et impose un alignement à droite, ainsi qu'une marge de 10 pixels en bas et à gauche de l'image !

Cette fonction retourne une chaine de caractère vide si aucune miniature n'est définie pour l'article...

(*) Dernière et non moins importante remarque :

Les codes ci-dessus concernent l'extrait, mais si on a défini que c'est le texte entier qui doit être publié sur le flux (réglages -> lecture), alors on devrait logiquement utiliser the_content_rss au lieu de the_excerpt_rss (non testé perso !). Cela dit, on peut aussi intégrer les deux possibilités...