He estado buscando la manera más fácil de conseguir una lista con un número determinado de entradas seleccionadas aleatoriamente de una o más categorÃas. Algo que parece tan inmediato, una simple consulta aleatoria a una base de datos, no parece estar muy extendido en WordPress.
Encontré varios plugins, pero no he conseguido hacer funcionar ninguno. En tech-buzz recomiendan el Random Posts Plugin de Wasabi, pero la página parece estar caÃda. Una pena, que las opciones que detallan en tech-buzz hacen al plugin bastante versátil, aunque no parece que tenga opción para seleccionar categorÃas.
A través del hilo de los foros de WordPress Display Random Posts from Specific Categories me encuentro otro plugin que tampoco he conseguido hacer funcionar.
Por lo que he visto WordPress no viene preparado para utilizar la orden «ORDER BY RAND()» de mysql, que es la que devuelve elementos de una tabla en orden aleatorio. Para permitir su uso hay que modificar el archivo query.php
alojado en el wp-include/
. Los cambios que hay que hacer son menores y no hay peligro de cargarse nada, según cuentan en la lista de correo donde lo he encontrado. Copio aquà los cambios exactos en el query.php
que me han funcionado a mÃ:
Sin cambios:
$allowed_keys = array('author', 'date', 'category', 'title', 'modified', 'menu_order');
...
if ( 'menu_order' != $orderby )
$orderby = 'post_' . $orderby;
Con cambios:
$allowed_keys = array('author', 'date', 'category', 'title', 'modified', 'menu_order', 'rand');
...
if ( 'menu_order' != $orderby && 'rand' != $orderby)
$orderby = 'post_' . $orderby;
if ('rand' == $orderby)
$orderby = 'RAND()';
Tras los cambios, se puede usar con query_posts la opción rand
en el atributo orderby
. Por ejemplo, para conseguir una sola entrada aleatoria de la categorÃa Aleatorio:
query_posts('category_name=Aleatorio&showposts=1&orderby=rand')
10 comentarios
Mi buenskotperez, en el topic que mencioas de tech-buzz alguien actualizó la URL correcta del plugin:
http://wasabi.pbwiki.com/Random%20Posts%20and%20Random%20Excerpts
O checa el post:
http://tech-buzz.net/2006/08/14/random-post-plugin-for-wordpress/
Ya lo descargué y apenas lo voy a testear. Lo que no me gustó es que no mencionan con cuáles versiones es compatible.
En fin.
Saludos
Gracias por la corrección, Guerry. En efecto no hay mucha información sobre el plugin, pero yo también lo probaré, pues me parecÃo, como ya apunté, bastante fácil de usar.
En cualquier caso, añadir los cambios que indico arriba en el archivo query.php me parece más sencillo y da más libertad a la hora de llamar aleatoriamente a cualquier comando dentro del Loop
hola…
en relacion a :
https://voragine.net/wordpress/lista-de-entradas-aleatorias-de-una-categoria
Funciona este metodo para mostrar entradas aleatorias?
Claro, Fernando, cambiar las lÃneas del archivo
query.php
precisamente sirve para conseguir mostrar una lista con el número de entradas aleatorias que quieras. Sólo tendrás que introducir, tras los cambios enquery.php
, el código que especifico en el lugar donde quieras que aparezcan las entradas.A partir de la versión 1.7 de WordPress puedes usar directamente
query_posts('category_name=Aleatorio&showposts=1&orderby=rand')
Perdón, lógicamente me referÃa a la vesrión 2.7 de WP.
Me ha sido muy útil.
SÃ, efectivamente, eso es justo lo que comento en un post más reciente. Gracias por la receta, en cualquier caso.