Hace tiempo estuve buscando algún plugin para WordPress que me mostrara en la barra lateral una lista de enlaces a entradas antiguas de forma aleatoria. Lo único que encontraba era un widget. Pero no me gustan los widgets porque soy muy anticuado y me gustan las cosas mas a la antiguita.
Entonces seguí con mi búsqueda y cha chaan! encontré uno como el que quería. Lo bajé, lo instalé y lo probé. A simple vista funcionaba, pero después de navegar por las entradas antiguas de este blog noté algo extraño. Había enlaces repetidos. Revisé el código y noté que el autor lo había hecho “a l’ahi se va”.
Fue entonces cuando me vi tentado a modificarlo de manera que cumpliera con mis expectativas. Reduje el numero de consultas a la base de datos, validé que los enlaces no se repitieran y dejé como opcional el número de enlaces que deseo mostrar.
Y finalmente, después de optimizar el código terminé mi trabajo y lo dejo aquí. Un plugín para WordPress que muestra una lista de x enlaces a entradas aleatorias del blog.
Como nota final quiero agradecer a Inkilino sin cuya iniciativa no habría yo hecho esto.
Pueden ver el plugin funcionando en la barra lateral derecha. Se aceptan reclamos, dudas, aclaraciones y sugerencias.
Instrucciones:
- Descarga el archivo fuente Random_Posts.php.
- Súbelo al directorio wp-content/plugins.
- Activa el plugin desde el panel de control de plugins.
- Modifica tu archivo sidebar.php y agregale:
<?php if(function_exists( 'get_random_posts')) { $exclude = (is_single()) ? $post->ID : 'none'; ?> <h2>Al azar... <?php get_random_posts($exclude);?> </ul> <?php }?> - Actualiza y listo.
Como parametro opcional, puedes especificar el número de enlaces que deseas mostrar, si no lo especificas, el script mostrará 15 enlaces por default. Para especificarlo, solo escribe el número desead, por ejemplo el 10:
<?php get_random_posts( $exclude, 10);?>
Es todo. Saludos y gracias nuevamente a Inkilino.
Popularidad: 11%







2 de Junio de 2007
Magnifico el trabajo que has hecho con el plugin Abel
Ahora mismo me lo bajo y lo pruebo.
4 de Julio de 2007
Gracias, luego nos cuentas que te parecio!
10 de Deciembre de 2008
El enlace de descarga no funciona…
11 de Deciembre de 2008
Hola Abel, gracias por actualizar el enlace de descarga que estaba roto xD
Pero tengo un pequeño problema al activar el Plugin.
me lanza este error:
El plugin no puede activarse porque devuelve un error fatal.
Parse error: parse error, expecting `T_OLD_FUNCTION’ or `T_FUNCTION’ or `T_VAR’ or `’}” in c:\localhost\easyphp1-8\www\wordpress2.6.5_es\wp-content\plugins\random_posts.php on line 13
Alguna ayuda al respecto.
Gracias.
11 de Deciembre de 2008
Ahh, sí, eso es porque el código está escrito en PHP5 y tu servidor está corriendo PHP4…
Lo puedes arreglar cambiando:
por:
Creo que es todo… suerte!
12 de Deciembre de 2008
Gracias Abel pero eh provado con estos cambios y sigue soltando error al activar el plugin, en este caso ahora en la linea 45.
El plugin no puede activarse porque devuelve un error fatal.
Parse error: parse error, expecting `T_OLD_FUNCTION’ or `T_FUNCTION’ or `T_VAR’ or `’}” in c:\localhost\easyphp1-8\www\wordpress2.6.5_es\wp-content\plugins\random_posts.php on line 45
12 de Deciembre de 2008
Quitale la palabra
12 de Deciembre de 2008
xD muchisimas gracias Abel por la ayuda y en especial por el Plugin.
xD
14 de Deciembre de 2008
Eh cambiado estas lineas para que no muestre paginas de forma que solo muestre posts.
Codigo original:
if ( ctype_digit( $not ) ){
$this->query = $wpdb->get_results(“SELECT `ID` FROM `$tableposts` WHERE `ID`!= $not AND`post_status`= ‘publish’ ” );
}
elseif ( is_null( $not ) ){
$this->query = $wpdb->get_results(“SELECT `ID` FROM `$tableposts` WHERE `post_status`= ‘publish’ ” );
Cambiado por:
if ( ctype_digit( $not ) ){
$this->query = $wpdb->get_results(“SELECT `ID` FROM `$tableposts` WHERE `ID`!= $not AND`post_status`= ‘publish’ AND post_type = ‘post’” );
}
elseif ( is_null( $not ) ){
$this->query = $wpdb->get_results(“SELECT `ID` FROM `$tableposts` WHERE `post_status`= ‘publish’ AND post_type = ‘post’” );
Pero acavo de darme cuenta que el plugin si repite entradas, de hecho repite la ultima Entrada agregada al blog.
Ahi alguna solución?
Salu2
15 de Deciembre de 2008
Buenas Abel, antes de nada espero no ser pesado y de nuevo darte las gracias por el plugin ya que hace bastante tiempo que andava buscando algo parecido.
Bueno yo uso el plugin en la pagina index.php y no en el sidebar, de forma que sustituyo por y así poder mostrar las entradas del index.php con contenido etc. de forma aleatoria.
Lo que el plugin parece ser que repite siempre, 2 veces, la ultima entrada agregada al blog.
De forma que según actualizas la pagina la entrada ejemplo “id_15″ aparece 2 veces.
Eso siempre y cuando no coincidan una después de la otra que queda horrible xD
Eh probado otro plugin, como el “Advanced Random Post” pero con este ultimo no consigo mostrar las 5 entradas.
:_(
20 de Febrero de 2009
Lo instale en mi blog y si funciona, curiosamente no me quejo de que funcione, si no que no encuentro como darle un formato mas “acorde” a mi blog, si me ayudas con el estilo te lo agradesco =)
Mierda, cuantas faltas ortograficas… ba =(
10 de Junio de 2009
jojojo me lo wa robar
10 de Junio de 2009
Bueno abel ya hize el che widget
aqui te va el code jojo
nada mas se agrega esto al archivo random_post.php
*Nota: Si en el blog que lo pones no tiene mas de las entradas default que son 15 se cicla jajaja
luego veo si arreglo eso
function widget_randompost(){ if( function_exists( 'get_random_posts' ) ){ $exclude = ( is_single() ) ? $post->ID : 'none'; echo 'Al azar... '; get_random_posts( $exclude, 1); echo ' '; } } function widget_randompost_register(){ register_sidebar_widget('Ramdom Posts','widget_randompost'); } add_action('init', widget_randompost_register);12 de Junio de 2009
jajaja despues de 2 años de haber hecho este plugin empiezo a recibir feedback XD
21 de Agosto de 2009
[...] tiempo que le robe al abel su plugin de random post, pero para poder ver los random post tenia que meter codigo en el sidebar y luego si cambiabas de [...]
9 de Febrero de 2010
¿Alguien sabe como hacer para que muestre la fecha en que fué publicado el post?
Desde ya muchas gracias.