Disponibilidad de canales RSS específicos

He realizado un par de mejoras en el web en lo que respecta a los feeds disponibles. En concreto la primera ofrece a la posibilidad de suscribirse a los feed de categorías de forma independiente y la segunda permite generar feeds a partir de determinados conjuntos de categorías y subcategorías, para lo cual he creado un pequeño plugin para WordPress.

Para subscribirse al feed de una categoría únicamente, he creado un enlace en el menú de Otras opciones del lateral derecho. Este enlace únicamente aparece cuando se está en una categoría y al clicar en él se muestra un feed con los contenidos de la categoría y sus subcategorías si las tiene. Para conseguirlo he utilizado el siguiente código:

<?php if (is_category()) { /* si estamos en un archivo de categoría */?>
   <?php
   $feed_link = str_replace("//","/",$_SERVER['REQUEST_URI'] . "/feed/");
   $cat_name  = single_cat_title('',false);
   ?>
   <li><a href="<?php echo $feed_link; ?>" title="RSS Feed para la categoría <?=$cat_name?>">RSS para <?=$cat_name?></a></li>
<?php } ?>

Aparte he creado también un pequeño plugin para WordPress, que permite generar feeds que incluyan diversas categorías, de forma que sea sencillo crear feeds de temáticas concretas. Esta necesidad me surgió hace un par de semanas tras hablar con Juanjo Navarro de Pláneta Código, un agregador de blogs de programación y desarrollo. Hablando con Juanjo llegamos a la conclusión de que era más conveniente ofrecerle un feed únicamente de las categorías que tenían que ver con su temática, algo completamente lógico por otra parte.

El plugin es realmente sencillo, se basa en añadir un par de reglas a la tabla de reglas que contempla WordPress, de forma que tras el formato de rss solicitado, puedan venir un conjunto de identificadores de categoría separados por coma. En este caso lo que se hace es añadir estos identificadores como parámetro cat a la url reescrita, de forma que cuando WP la procese tenga trabaje únicamente sobre las categorías que le hemos indicado y sus hijas.

function feed_categories_rules(&$rules)
{
   $rules['index.php/feed/(feed|rdf|rss|rss2|atom)/([0-9,]+)/?$'] = 'index.php?&feed=$matches[1]&cat=$matches[2]';
   $rules['index.php/(feed|rdf|rss|rss2|atom)/([0-9,]+)/?$'] = 'index.php?&feed=$matches[1]&cat=$matches[2]';
   return $rules;
}

De esta forma podríamos utilizar urls como http://www.eslomas.com/index.php/feed/301 para obtener un feed para la sección Diseño Web y sus descendientes, o http://www.eslomas.com/index.php/feed/320 para la de CSS.

En el caso de que no quieras que desde fuera de tu web se utilicen los códigos de categorías por parecerte poco usable, o que puedan cambiar en un futuro, se puede crear también una regla que en vez del conjunto de códigos de categoría, acepte un nombre, el cual habría que cambiar por los códigos correspondientes. De esta forma yo he creado un canal de nombre «programacion-desarrollo» accesible mediante http://www.eslomas.com/index.php/feed/programacion-desarrollo.

function feed_categories_rules(&$rules)
{
   $rules['index.php/feed/(feed|rdf|rss|rss2|atom)/([0-9,]+)/?$'] = 'index.php?&feed=$matches[1]&cat=$matches[2]';
   $rules['index.php/(feed|rdf|rss|rss2|atom)/([0-9,]+)/?$'] = 'index.php?&feed=$matches[1]&cat=$matches[2]';
 
   $rules['index.php/(feed|rdf|rss|rss2|atom)/(programacion-desarrollo)/?$'] = 'index.php?&feed=$matches[1]&cat=$matches[2]';
 
   return $rules;
}

Si quieres utilizar el plugin basta con descargarlo, descomprimirlo en la carpeta de plugins /wp-content/plugins y activarlo desde el administrador. Si deseas crear tus propios feeds con nombres específicos encontrarás las instrucciones en el código del plugin.

Twitter Digg Delicious Stumbleupon Technorati Facebook Email

3 Respuestas para “Disponibilidad de canales RSS específicos”

  1. Lo ideal seria que el propio visitante pudiera elegir las categorias de su gusto y que automaticamente se creara un feed especifico para el, al mejor estilo Shaun Inman…

    http://www.shauninman.com/feed/

    …tenes alguna idea de como lograr esto? o si ya alguien creo un plugin que lo haga?

    Atte: K3NNY

Trackbacks/Pingbacks

  1. WP Plugins DB » Blog Archive » Multiple Cagetories Feed - 20. May, 2007

    […] Visit […]

  2. Wordpress - Resources - DesignersTalk - 09. Oct, 2008

    […] WordPress – Resources Multi-User WordPress Install : WordPress MU › Home BBPress, WordPress integrated Forum : bbPress » Home BuddyPress, turn wordpress into a social network : BuddyPress » A WordPress MU Based Social Network Platform Job Board Script : WordPress Job Board Script | BlueFur.com WordPress Function List : http://www.dbswebsite.com/design/wordpress-reference Ad management : WordPress › WP125 « WordPress Plugins OIOpublisher – Control Your Ad Space Random Image Plugin : Random Image Plugin for WordPress – Justinsomnia Caching (good to survive a digg) : WP Super Cache Different Post templates for different categories : guff : Post Templates by Category Different RSS Feed for each category : EsLoMas.com » Disponibilidad de canales RSS específicos WordPress SEO Plugin (great – every install should use this) : WordPress › All in One SEO Pack « WordPress Plugins Affiliate Link Cloaker : WordPress Link Cloak – Hide Affiliate Links in WordPress Spam Protection : Stop Comment Spam and Trackback Spam « Akismet 30+ Plugins to Make Your WordPress Blog More Social : 30+ Plugins to Make Your WordPress Blog More Social – Mashable The 7 Weirdest and Wackiest Uses for WordPress : The 7 Weirdest and Wackiest Uses for WordPress – Mashable WordPress Themes : WordPress › WordPress Themes Download free WordPress themes – Free WP Themes Top WordPress Themes – Best Free Themes for WordPress WordPress Themes WordPress Themes: WordPress Themes for Small Business; WordPress Themes Tutorials These are a few of my bookmarks, feel free to share yours as well. __________________ Linked In :: Last.fm :: Twitter ……………… […]