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.
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