Existen algunos plugins para WordPress que permiten mostrar artículos o entradas aleatorias en las zonas de widgets. No requieren de complejas instalaciones y permiten sencillas configuraciones de como se muestran en las páginas, sobre todo a la hora del diseño. El problema que presentan, si quieres incluirlos en el interior de un post es el no disponer del código o llamada que lo permite.
Sin utilizar ningún plugin, insertando una pequeña porción de código, podemos mostrar el título (y también una parte del contenido, si lo deseamos) de los artículos que queramos, seleccionados aleatoriamente. Algo similar a lo que vemos arriba. Este sería el código a incluir:
<strong>Nuestras sugerencias</strong> <ul> <?php $mipost = $post; $args = array( 'numberposts' => 5, 'orderby' => 'rand', 'post_status' => 'publish', 'offset' => 1); $rand_posts = get_posts( $args ); foreach( $rand_posts as $post ) : ?> <li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li> <?php endforeach; ?> </ul> <?php $post = $mipost; ?>
La primera línea incluye el título que le damos a la sección, Nuestras sugerencias en nuestro caso. En la definición de los argumentos indicamos el número de posts (artículos o entradas) a incluir, la forma de llamada, que como veis es aleatoria (rand), entre otros datos. Antes de la ejecución de la porción del script que se ocupa de llamar y mostrar los títulos de las entradas, guardamos en la variable $mipost el valor de $post para recuperarlo al final y así evitar, como podría ocurrir en algunos casos, la pérdida o el cambio de contenido.
En el código que os mostramos no hemos incluido la inserción de contenido del artículo. Para hacerlo sólo habría que cambiar la línea
<li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li>
por
<li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a> <?php the_excerpt(); ?> </li>
Ahora lo único que tienes que hacer es añadir el código que te ofrecemos en el lugar que desees. En nuestro caso lo habíamos añadido en la parte superior derecha de todos los artículos, a la derecha de un banner publicitario. (Tienes una muestra en la imagen que incluimos tras el primer párrafo de este artículo).
Muy buen tutorial, ahora tengo una duda, ¿Si quisiera mostrar una sola entrada como podría hacerlo?
Fíjate, en la primera porción de código, que en la línea 5 hay una variable para indicar el número de posts o entradas a mostrar: numberposts. Ahí es donde tienes que indicarlo. En el caso que pongo como ejemplo aparecen 5 artículos.
Saludos.