...Microplagio...

Advertisement

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:

  1. Descarga el archivo fuente Random_Posts.php.
  2. Súbelo al directorio wp-content/plugins.
  3. Activa el plugin desde el panel de control de plugins.
  4. 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 }?>
    
  5. 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%

Artículos relacionados

16 comentarios para "Plugin para Posts aleatorios en WordPress: Random_Posts"

  • 1
    InKiLiNo
    2 de Junio de 2007

    Magnifico el trabajo que has hecho con el plugin Abel ;)

    Ahora mismo me lo bajo y lo pruebo.

  • 2
    Abel
    4 de Julio de 2007

    Gracias, luego nos cuentas que te parecio!

  • 3
    xisco
    10 de Deciembre de 2008

    El enlace de descarga no funciona…

  • 4
    xisco
    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.

  • 5
    Abel
    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:

    	private $ids = array();
    	private $query;
    
    	function __construct(
    

    por:

    	var $ids = array();
    	var $query;
    
    	function RandomPost(
    

    Creo que es todo… suerte!

  • 6
    xisco
    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

  • 7
    Abel
    12 de Deciembre de 2008

    Quitale la palabra

    public
  • 8
    xisco
    12 de Deciembre de 2008

    xD muchisimas gracias Abel por la ayuda y en especial por el Plugin.

    xD

  • 9
    xisco
    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

  • 10
    xisco
    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.

    :_(

  • 11
    m313n45
    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 =(

  • 12
    godie
    10 de Junio de 2009

    jojojo me lo wa robar :D

  • 13
    godie
    10 de Junio de 2009

    Bueno abel ya hize el che widget :D 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);
    
  • 14
    Abel
    12 de Junio de 2009

    jajaja despues de 2 años de haber hecho este plugin empiezo a recibir feedback XD

  • 15
    Random posts widget | Godieboy
    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 [...]

  • 16
    Pahito
    9 de Febrero de 2010

    ¿Alguien sabe como hacer para que muestre la fecha en que fué publicado el post?
    Desde ya muchas gracias.

  • Deja el comentario