Sepa como crear un Feed o RSS personalizado en WordPress para añadir más atributos que no se incluyen en el feed que viene por defecto.
Todos blogs con WordPress tiene integrado un generador de contenido RSS de forma predeterminada que muestra la información básica del blog como el título, descripción, correo y dirección web del blog, así como los artículos recientemente publicados en un formato RSS o XML, pero a veces se quiere hacer cierta modificación al archivo RSS para agregar nuevos nodos, como por ejemplo, la dirección URL de la miniatura que acompaña a la publicación.
Aunque no es una buena práctica colocar la URL de la miniatura en un nodo <image> </image> por que el navegador no lee la imagen, si nos puede servir al crear aplicaciones para teléfonos móviles o extensiones del navegador que mostrará las últimas publicaciones junto a la miniatura.
Veamos como crear un feed personalizado para WordPress sin tocar para nada el feed predeterminado (www.tublog.com/feed), sino creando uno nuevo como www.tublog.com/feed-moviles
Crear un Feed o RSS personalizado en WordPress
1. Ve a la ruta del tema actual de tu WordPress y que comúnmente es «/wp-content/themes/tu_tema», crea un archivo PHP con el nombre que desees e insertar el siguiente código para generar un feed personalizado.
NOTA: El nombre que utilizaremos para la plantilla será «Custom Feed» como dice en la tercera línea de código.
<?php
/*
Template Name: Custom Feed
*/
$numposts = 10;
function yoast_rss_date( $timestamp = null ) {
$timestamp = ($timestamp==null) ? time() : $timestamp;
echo date(DATE_RSS, $timestamp);
}
function yoast_rss_text_limit($string, $length, $replacer = '...') {
$string = strip_tags($string);
if(strlen($string) > $length)
return (preg_match('/^(.*)\W.*$/', substr($string, 0, $length+1), $matches) ? $matches[1] : substr($string, 0, $length)) . $replacer;
return $string;
}
$posts = query_posts('showposts='.$numposts);
$lastpost = $numposts - 1;
header("Content-Type: application/rss+xml; charset=UTF-8");
echo '<?xml version="1.0"?>';
?><rss version="2.0">
<channel>
<title>Título del Blog</title>
<link>http://tublog.com/</link>
<description>La descripción de tu blog</description>
<language>es_ES</language>
<pubDate><?php yoast_rss_date( strtotime($ps[$lastpost]->post_date_gmt) ); ?></pubDate>
<lastBuildDate><?php yoast_rss_date( strtotime($ps[$lastpost]->post_date_gmt) ); ?></lastBuildDate>
<managingEditor>[email protected]</managingEditor>
<?php foreach ($posts as $post) { ?>
<item>
<title><?php echo get_the_title($post->ID); ?></title>
<link><?php echo get_permalink($post->ID); ?></link>
<description><?php echo '<![CDATA['.yoast_rss_text_limit($post->post_content, 500).'<br/><br/>Keep on reading: <a href="'.get_permalink($post->ID).'">'.get_the_title($post->ID).'</a>'.']]>'; ?></description>
<pubDate><?php yoast_rss_date( strtotime($post->post_date_gmt) ); ?></pubDate>
<guid><?php echo get_permalink($post->ID); ?></guid>
</item>
<?php } ?>
</channel>
</rss>
2) Ahora nos vamos a la sección «Página» de WordPress y en ella agregamos una nueva página.
3) En la opción «Plantilla», deberá aparecerá la seleccionamos el que dice «Custom Feed» y guardamos la página.
4) Ahora abre la página recién creada y este se abrirá como un feed personalizado.
5) En mi caso agregue el nodo <image> </image> dentro del «foreach» que contiene la URL de la miniatura de la publicación.
<image><?php $thumb = wp_get_attachment_image_src( get_post_thumbnail_id($post->ID), 'thumbnail' );
$url = $thumb['0'];
echo $url;
?></image>
Espero te haya servido este ejemplo de como crear un feed personalizado.
Fuente: Yoast