X

Post aleatorios por categorías en WordPress

Si quieres mostrar los últimos post de una categoría concreta, o lo que es más, posts aleatorios de esa categoría aquí te traigo la solución.

Normalmente cuando entras en un blog hecho con WordPress en la página principal te muestra las últimas entradas publicadas en ese blog.

Si lo que quieres es mostrar las últimas entradas publicadas en una categoría concreta del blog y no en otras, o lo que es más, entradas aleatorias de una categoría sigue leyendo que puedes encontrar la solución. Iremos paso a paso.

Mostrar los últimos post del blog en WordPress

Esta es la función por defecto que viene en el index de los weblogs de WordPress, que te ofrece las últimas entradas publicadas del blog.

Este código lo sabrás de sobra, pero por si acaso nunca está demás tenerlo a mano:

<?php if (have_posts()) : ?>
<?php while (have_posts()) : the_post(); ?>
<a href="<?php the_permalink() ?>"><?php the_title(); ?></a>
<?php the_time('j/m/y') ?>
<?php the_excerpt(); ?>
<?php endwhile; ?>

En este código se está mostrando el extracto de cada entrada, no el contenido completo, para mostrar el contenido completo hay que sustituir the_excerpt por  (se puede modificar):

<?php the_content('Seguir leyendo... &raquo;'); ?>

Post aleatorios en WordPress

Otra cosa que puede interesarnos hacer es mostrar entradas aleatorias del blog entero. Esto puede ser útil para mostrar contenido interesante al visitante, hacer más visibles entradas antiguas o cualquier otro uso que se te ocurra. Aquí el código para hacerlo:

<ul>
<?php
  $rand_posts = get_posts('numberposts=5&orderby=rand');
  foreach( $rand_posts as $post ) : ?>

<li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li>
<?php endforeach; ?>

</ul>

Se puede cambiar el número de entradas aleatorias que se enseñarán modificando numberposts=5 por el número de entradas que quieras mostrar.

También tienes plugins que lo hacen por ti: Advanced Random Post o Random Posts.

Post aleatorios por categorías en WordPress

Buscando como mostrar entradas aleatorias en WorPress para una categoría determinada eliminando el resto, di con la solución. Como me costó encontrarlo un poco, me lo guardo en el blog para la próxima vez y lo comparto con quien lo necesite. Aquí el código:

<?php $reciente = new WP_Query("cat=XX&showposts=5&orderby=rand");
      while($reciente->have_posts()) : $reciente->the_post();?>
<a href="<?php the_permalink() ?>"><?php the_title(); ?></a>
<?php the_excerpt(); ?>
<?php endwhile; ?>

Donde pone showposts=5, 5 es el número de artículos que mostrará, puedes modificarlo para mostrar el número de artículos que quieras.

Donde pone cat=XX, hay que sustituir las XX por el número de la categoría.

El orderby=rand es lo que hace que los post se muestren de forma aleatoria.

Obtener la ID de una categoría

Ahora bien, obtener el número (o id) de una categoría en WordPress es menos sencillo de lo que parece. Para ello hacemos lo siguiente: entramos al panel de administración y en la sección de entradas (post), pinchamos en categorías. Si pones el ratón encima del nombre de la categoría de la que quieras averiguar su ID, en el navegador abajo te saldrá una url como la siguiente:

http://www.tublog.com/wp-admin/categories.php?action=edit&cat_ID=4

Ese último número que aparece es el ID de nuestra categoría.

Si no te ha quedado claro, aquí un videotutorial de WordPress muy cortito explicándolo (aunque se basa en la versión 2.6 de Wordpres):

Últimos post publicados en una categoría

Volvamos a los post aleatorios según la categoría. Si quieres hacer lo mismo pero mostrando los últimos post publicados en una categoría y sólo en esa, tal y como salen las actualizaciones de todo el blog en portada (pero sólo de esa categoría, repito), se usa el mismo código de antes pero eliminando el orderby. Sería así:

<?php $reciente = new WP_Query("cat=XX&showposts=5");
     while($reciente->have_posts()) : $reciente->the_post();?>
<a href="<?php the_permalink() ?>"><?php the_title(); ?></a>
<?php the_excerpt(); ?>
<?php endwhile; ?>

Después de todo esto, si no te quieres complicar mucho la vida puedes recurrir a los plugins de WordPress, en este caso puedes usar Random Posts from Category, que como su nombre indica hace lo que estamos tratando en este artículo. Te da una lista de post aleatorios de una categoría seleccionada de tu blog de WordPress.

modificado el 14 septiembre, 2013 3:23

Verónica Milán: Se dedica desde hace más de 14 años al diseño y desarrollo web y al marketing online. Apasionada de Internet y los proyectos online. Sigue muy de cerca todo lo que se cuece en cuanto a emprendimiento. Ha trabajado para empresas como ELPAIS, Banco Santander y Tuenti (Telefónica).

Ver comentarios (5)

  • Hola parece que he encontrado algo bueno, pero mi problema es que quiero mostrar los post del día de hoy en un módulo enlazado a una categoria en cuestión. Espero explicarme. o sea, que los visitantes vean en ese módulo las publicaciones que coinciden con ese día, ni antes ni despueés. Muchas gracias.

  • Muy buena la info. Me gustaría saber, ahora que está de moda el wp multisite, si es posible hacer algo igual o parecido con los subdominios en el dominio principal.