WordPress : Comment inclure l’image mise en avant des articles dans les flux de syndication RSS d’un site ?

Questions et réponsesSujet : WordPressWordPress : Comment inclure l’image mise en avant des articles dans les flux de syndication RSS d’un site ?
Question posée par Bigue Niqueadminil y a 2 mois
Par défaut, WordPress offre, dans Réglages > Lecture, la possibilité d’inclure le « Texte complet » ou le « Résumé » (extrait) des articles dans les flux de syndication RSS. Si le texte a des images dans le contenu, la première image sera utilisée par la plupart des lecteurs RSS.

Mais comment fait-on pour que l’image sélectionnée comme « Image mise en avant » (« Featured image ») de l’article s’affiche plutôt dans les flux RSS ?

Il s’agit d’une question tout à fait légitime.

Laisser un commentaire

2 Réponses
Best Answer
Bigue Niqueadmina proposé une réponse il y a 1 mois
J’utilise actuellement ce snippet pour insérer l’image mise en avant de chaque article dans son entrée du flux RSS. L’image étant insérée avant le contenu de l’article, les flux qui sélectionnent la première image attraperont la bonne image.

/**
 * Featured image to RSS feed
 * @link https://woorkup.com/show-featured-image-wordpress-rss-feed/
 * @link https://developer.wordpress.org/reference/functions/get_the_post_thumbnail_url/
 * @updates
 * - 20200530 Using get_the_post_thumbnail_url() instead of get_the_post_thumbnail()
 */
function featuredtoRSS($content) {
  global $post;
  if ( has_post_thumbnail( $post->ID ) )
    $content = '<div id="thumbnail" style="margin-bottom:15px"><img src="' . get_the_post_thumbnail_url( $post->ID, 'full' ) . '"/></div>' . $content;
  return $content;
}
 
#add_filter('the_excerpt_rss', 'featuredtoRSS');
add_filter('the_content_feed', 'featuredtoRSS');

add_filter( 'the_content', function( $content ) {
  global $post;
  if ( has_post_thumbnail( $post->ID ) )
    $content = '<figure id="thumbnail" style="display:none"><img src="' . get_the_post_thumbnail_url( $post->ID, 'full' ) . '"/></figure>' . $content;
  return $content;
});

L’utilisation de ce snippet n’exclut pas celle de l’extension RSS Featured Image.

Insérez simplement ce code dans le fichier functions.php de votre thème enfant ou utilisez l’extension Code Snippets.

Laisser un commentaire

Bigue Niqueadmina proposé une réponse il y a 1 mois
L’extension RSS Featured Image (gratuite) ajoute une balise <media:content url="..."/> à chaque item du flux RSS avec l’URL de l’image mise en avant.

Pas tout à fait parfait
Cela suffit pour dans certains cas. Mais certains lecteurs RSS vont plutôt utiliser la première image du contenu de l’article (balise RSS <description>) en priorité sur <media:content>, ce qui donne des résultats mitigés.

FeedWordPress
Pour récupérer l’URL de l’image mise en avant des articles d’un tel flux avec FeedWordPress (extension WordPress), on peut utiliser la syntaxe $(media:content/url) comme valeur d’un champ personnalisé (Admin WordPress : Syndication > Posts & Links, section Custom Post Settings).

Bigue Nique admin il y a 1 mois

Voici un exemple concret d’échec systématique de l’affichage des vignettes avec les lecteurs qui donnent la priorité à la première image du contenu : l’extension WP Matomo (piwik) ajoute un « pixel » à chaque entrée des flux, et ce pixel sera sélectionné avant l’image spécifiée par RSS Featured Image. L’usage d’un snippet pour insérer l’image dans le contenu de l’entrée demeure donc la meilleure alternative.

Laisser un commentaire