Imágenes destacadas de WordPress en el feed RSS

Ya comenté en un post anterior cómo añadir imágenes destacadas a tu tema de WordPress, pero olvidé indicar cómo se pueden añadir también estas imágenes a tu feed RSS. Yo por ejemplo uso Feedly y Flipboard para iPad como lectores de feeds y en ambas aplicaciones este tipo de imágenes quedan de maravilla, haciendo tus artículos mucho más visuales y atractivos.

Wordpress

Pasando sin dilaciones al código fuente, estas son las dos funciones que tienes que añadir en el archivo functions.php de tu tema:

function rss_add_post_thumbnail($content = '') {
	global $post;
	if ( has_post_thumbnail() ) {
		$image = get_the_post_thumbnail($post->ID, 'main-thumb', array('class' => ''));
		$content = $image . '<br />' . $content;
	}
	return $content;
}
add_filter('the_excerpt_rss', 'rss_add_post_thumbnail');
add_filter('the_content',     'rss_add_post_thumbnail');

Este fragmento de código incluirá la imagen destacada antes del contenido del post en el feed RSS. El siguiente fragmento añade la etiqueta enclosure a cada item del feed:

function rss_add_enclosure() {
    global $post;
    if( has_post_thumbnail() ) {
		$thumb = wp_get_attachment_image_src( get_post_thumbnail_id($post->ID), 'main-thumb' );
		$url = $thumb['0'];
		echo "n";
    }
}
add_action('rss_item', 	'rss_add_enclosure');
add_action('rss2_item', 'rss_add_enclosure');

Lee ahora: 4 formas creativas de añadir un botón Google +1 a tu web »

  • http://blog.qrokes.com/ QR Okes

    Hola.
    Me ha funcionado muy bien tu solucion, la imagen destacada aparece al inicio del feed. Solo tengo un problema, la imagen tambien se inserta al inicio del articulo en mi blog y eso no lo quiero, solo quiero que se inserte en el feed y en la portada del blog, no dentro del articulo. Espero pudieras ayudarme.
    De antemano muchas gracias.

    • Pablo Román

      Hola, creo que debería funcionar si omites la línea add_filter(‘the_content’, ‘rss_add_post_thumbnail’);

      Un saludo.

      • http://blog.qrokes.com/ QR Okes

        Gracias. Lo solucione con este codigo:

        add_filter(‘the_content_feed’, ‘imagen_destacada_rss’);function imagen_destacada_rss($content) { global $post; if( has_post_thumbnail($post->ID) ) $content = ” . get_the_post_thumbnail($post->ID, ‘thumbnail’) . ” . $content; return $content;}

  • José Ángel

    Hay alguna posibilidad de que la foto sea un elemento independiente del content, de esa forma se podría mostrar la foto, titulo y extracto en una web embebiendo el RSS.

  • Gnz

    Hola! Como puedo separar el campo de imagen, y ponerlo como un atributo xml? Me seria de gran ayuda si me pudieras dar algun truco.
    Muchas gracias!!

    Saludos :)