Generar Feed RSS para un tipo de entrada personalizada

Una de las novedades más importantes con la aparición de la versión 3 de WordPress fueron los tipos de entrada personalizados (Custom Post Types). Con esta novedad WordPress se considero un sistema de gestión de contenidos (CMS) que no sólo era útil para la gestión de blogs, sino también para la creación de sitios de todo tipo.

WordPress proporciona por defecto una URL concreta para el RSS de las entradas y los comentarios; aunque también se puede generar el feed RSS para cualquier tipo de entrada personalizada añadiendo el tipo de entrada personalizada a la cadena de consulta de la URL del feed.

http://www.tusitio.com/feed/?post_type=nombre_tipo_de_entrada

Aquí, cambiando el valor de la variable post_type por el nombre de tu tipo de entrada podrás consultar su canal RSS.

AÑADIR TODOS LOS TIPOS DE ENTRADA AL FEED PRINCIPAL

¿ Que pasa si lo que quieres es añadir todos los tipos del entrada al feed RSS principal ? Pues esto lo puedes hacer, copia el código que te muestro a continuación y ponlo en el archivo functions.php:

function myfeed_request( $qv ) {if ( isset( $qv['feed'] ) ) {$qv['post_type'] = get_post_types();}return $qv;}add_filter( 'request', 'myfeed_request' );

AÑADIR TIPOS DE ENTRADA ESPECÍFICOS AL FEED PRINCIPAL

Este código puede agregar uno o varios tipos de entrada específicos a la fuente principal RSS de tu sitio, que por lo general se compone de sólo “posts”.

Con esto puedes especificar cuales quieres que se muestren pudiendo incluso eliminar el tipo de entrada “post” y añadiendo aquellos personalizados que quieras. Esto se hace así:

function myfeed_request( $qv ) {if ( isset( $qv['feed'] ) && !isset( $qv['post_type'] ) ) {$qv['post_type'] = array( 'post', 'project', 'website' );}return $qv;}add_filter( 'request', 'myfeed_request' );

ADICIÓN DE FEEDS EXTRA EN LA CABECERA HTML

Si quieres agregar más feeds RSS con la etiqueta a la cabecera HTML de tu sitio, puedes hacerlo con este código que añade cada tipo de entrada que quieras. Con esto pones a disposición del navegador un nuevo canal RSS para ser usado en la elección al feed de suscripción.

add_action( 'wp_head', 'wprss_my_feeds' );function my_cpt_feeds() { $post_types = array('project'); foreach( $post_types as $post_type ) { $feed = get_post_type_archive_feed_link( $post_type ); if ( $feed === '' || !is_string( $feed ) ) { $feed = get_bloginfo( 'rss2_url' ) . "?post_type=$post_type"; } printf(__('<link rel="%1$s" type="%2$s" href="%3$s" />'),"alternate","application/rss+xml",$feed); }}

Plugins relacionadosRecent Global Post Feed muestra el feed global de los posts de todos los sitio de una red de sitios WordPress Multisitio.

Si quieres importar el feed RSS de otros sitios web al tuyo puedes utilizar WP RSS Aggregator o WPeMatico. Con estos puedes generar automáticamente entradas en tu blog.