Destacar los miniposts en el RSS de Wordpress
Programación, Wordpress Noviembre 14th, 2009
Los miniposts suelen ser una práctica muy útil en los blogs: permiten compartir ideas rápidas (a menudo links interesantes) sin la necesidad de escribir un post largo ni emitir opinión elaborada. Simplemente un comentario corto.
La forma en que reconocemos a los miniposts es por su diseño minimalista comparado con como se muestran los demás posts del blog. Usualmente, se omite el título del minipost y el link a los comentarios del mismo se presenta seguido. Al entrar al blog, uno los reconoce fácilmente. No obstante, si uno está suscripto vía el feed, la diferenciación es nula, y los lectores pueden quedar confundidos ante posts que son muy cortos. Es por eso que acá voy a explicar cómo diferenciar los miniposts en el RSS para que el lector pueda darse cuenta que se encuentra ante un post de este tipo.
Lo que haremos será básicamente dos cosas: mediante la función get_the_category de Wordpress, definiremos si un post es un minipost, y si es así, haremos que aparezca antes del título en el RSS la leyenda [MiniPost]. Para esto último, solo tendremos que modificar el archivo feed.php en la carpeta wp-includes, que contiene las funciones para el feed.
Entonces, abrimos el archivo feed.php y buscamos la función get_the_title_rss() (en el feed.php original, está en la línea 114). Lo que habrá que agregarle a esa función es el siguiente código:
$Categorias = get_the_category(); foreach($Categorias as $Categoria) { if($Categoria->cat_ID == ID_DE_LA_CATEGORIA_DE_MINIPOSTS) { $MiniPost = 1; } } if($MiniPost == 1){ return "[MiniPost] ".$title; } else{ return $title; }
Obviamente, tenemos que reemplazar el ID_DE_LA_CATEGORIA_DE_MINIPOSTS por el Id que corresponde a la categoría de nuestro blog.
Lo que hace el código es muy sencillo. Primero, mediante la función get_the_category, guardo las categorías del post en la variable Categorias. Con el foreach, recorro las categorías del post y comparo si alguna es igual a la categoría de los miniposts, y si es así, defino la variable $MiniPost = 1. Luego, comparo: si $MiniPost = 1, devuelvo [MiniPost] + El título de post en el RSS. Si $MiniPost no es igual a 1, solo devuelvo el título del post.
La función get_the_title_rss() completa, quedaría así:
function get_the_title_rss() { $title = get_the_title(); $title = apply_filters('the_title_rss', $title); $Categorias = get_the_category(); foreach($Categorias as $Categoria) { if($Categoria->cat_ID == ID_DE_LA_CATEGORIA_DE_MINIPOSTS) { $MiniPost = 1; } } if($MiniPost == 1){ return "[MiniPost] ".$title; } else{ return $title; } }
Espero que les haya servido. Cualquier duda pueden dejarla en los comentarios.


Noviembre 14th, 2009 at 14:33 pm
Muy interesante, el único punto débil que le encuentro es que tenemos que modificar un archivo de la carpeta wp-includes, y cuando actualicemos wordpress automáticamente, el archivo será pisado.
Nos tenemos que acordar de guardar una copia para volver a subir o algo por el estilo, lo cual es bastante rompe… :P
Saludos Pato!
Diciembre 28th, 2009 at 17:28 pm
[...] en Patricio Tarantino. Etiquetas: Feed, Minipost, [...]