Tu blog de WordPress probablemente tiene docenas de excelentes publicaciones antiguas, pero los nuevos visitantes solo ven tus publicaciones más recientes, mientras que todo lo demás permanece enterrado en tus archivos.
Mostrar publicaciones aleatorias es una forma fácil de solucionar eso. Cada carga de página muestra contenido diferente, lo que da a las publicaciones antiguas una nueva exposición y mantiene a los visitantes haciendo clic en tu sitio por más tiempo. Incluso puedes agregar un botón de "Publicación Aleatoria" que permite a los lectores saltar a un artículo sorpresa, al estilo clásico de StumbleUpon.
En este tutorial, te mostraremos cómo mostrar publicaciones aleatorias en WordPress, además de cómo redirigir a los visitantes a una publicación aleatoria con un solo enlace.

Simplemente use los enlaces rápidos a continuación para saltar al método que desea usar:
Cómo mostrar publicaciones aleatorias en WordPress
¿Buscas una forma divertida de mantener a los visitantes haciendo clic en tu sitio? Puedes agregar fácilmente una lista de artículos aleatorios directamente en tu barra lateral, páginas o dentro de tus publicaciones de blog.
Si bien algunos tutoriales pueden sugerir agregar código personalizado al archivo functions.php de tu tema, recomendamos usar WPCode, el plugin gratuito de fragmentos de código para WordPress.
WPCode viene con validación inteligente de fragmentos de código para evitar que errores de código comunes rompan tu sitio. También hace que tus personalizaciones sean a prueba de futuro, lo que significa que puedes actualizar o cambiar a un tema diferente sin preocuparte por perder todas las funciones de código personalizado.
Primero, necesitas instalar y activar el plugin gratuito WPCode. Para obtener instrucciones detalladas, consulta nuestra guía para principiantes sobre cómo instalar un plugin de WordPress.
Una vez activado el plugin, dirígete a la página Fragmentos de código » + Agregar fragmento desde la barra lateral de administración de WordPress.
Una vez que estés allí, haz clic en el botón ' + Agregar fragmento personalizado' en la opción 'Agrega tu código personalizado (Nuevo fragmento)'.

A continuación, selecciona ‘Fragmento de PHP’ como tipo de código.
Luego serás dirigido a la página ‘Crear fragmento personalizado’, donde puedes comenzar escribiendo un nombre para el fragmento de código.
Este título es solo para tu referencia y no aparecerá en ningún lugar de tu sitio.

A continuación, simplemente copia y pega el siguiente código en el cuadro ‘Vista previa del código’:
<?php
$number_of_posts = 5; // Change this to the number of random posts you want to display.
$title = 'You might also like:'; // This is the title that will be displayed above the list of posts.
$current_post_id = get_the_ID();
$args = array(
'post_type' => 'post',
'orderby' => 'rand',
'posts_per_page' => $number_of_posts,
'post__not_in' => array( $current_post_id ),
);
$random_posts = new WP_Query( $args );
if ( $random_posts->have_posts() ) {
echo '<h3>' . esc_html( $title ) . '</h3>';
echo '<ul>';
while ( $random_posts->have_posts() ) {
$random_posts->the_post();
echo '<li><a href="' . esc_url( get_permalink() ) . '">' . esc_html( get_the_title() ) . '</a></li>';
}
echo '</ul>';
}
wp_reset_postdata();
Este fragmento muestra 5 publicaciones aleatorias dondequiera que coloques su shortcode, y automáticamente omite la publicación que el visitante ya está leyendo.
Para mostrar un número diferente, cambia el valor de $number_of_posts en la parte superior del fragmento. La línea $title controla el encabezado 'Quizás también te interese:' que aparece encima de la lista, así que edita ese texto o configúralo en '' si prefieres no tener ningún encabezado.
Después de eso, necesitarás guardar el fragmento para generar un shortcode único, así que haz clic en el botón 'Guardar fragmento'.

Después de eso, desplázate hasta la sección 'Inserción' y elige la opción 'Shortcode'.
Ahora verá el shortcode que WPCode generó automáticamente. Haga clic en su botón ‘Copiar’, ya que usará este shortcode en el siguiente paso.

Finalmente, desplázate de regreso a la parte superior y cambia el interruptor ‘Inactivo’ a ‘Activo’.
Después de eso, simplemente haga clic en el botón ‘Actualizar’ para guardar sus cambios.

Después de guardar el fragmento de código, puede mostrar publicaciones aleatorias en su sitio usando el shortcode que copiamos anteriormente.

Para obtener más detalles sobre cómo hacer esto, consulte nuestra guía sobre cómo agregar shortcodes de WordPress.
Si siguen apareciendo las mismas publicaciones aleatorias en lugar de cambiar, generalmente es su caché de página la que sirve una copia guardada de la página. Comience por borrar su caché y recargar la página.
Si aún no cambian, excluya esa página de la caché de página completa de su plugin de caché.
Cómo redirigir usuarios a una publicación aleatoria (con un plugin)
Si bien mostrar una lista de publicaciones aleatorias funciona muy bien en su barra lateral o al final de un artículo, todavía pide a los visitantes que escaneen los títulos y elijan uno. En los primeros días de la web, disfrutamos mucho usando Stumbleupon, que facilitaba el descubrimiento de nuevo contenido con solo hacer clic en un botón.
Puede agregar una funcionalidad similar en su sitio web donde, en lugar de mostrar una lista, crea un botón de ‘Publicación Aleatoria’ o un enlace de ‘Sorpréndeme’ que lleva instantáneamente a los visitantes a un artículo aleatorio en su sitio. Es una forma divertida de fomentar la exploración, y funciona especialmente bien en su página 404 o en su menú de navegación.
Recomendamos usar el Plugin de Publicación Aleatoria gratuito. Funciona agregando un parámetro de URL ?redirect_to=random a su sitio.
Simplemente instale y active el plugin, luego agregue un enlace a su menú de navegación, widget de barra lateral, botón o cualquier otro lugar de su sitio. Un visitante puede hacer clic en él para visitar una publicación aleatoria.
Para crear su propio enlace, deberá reemplazar www.example.com con el nombre de su propio dominio.
Aquí están las variaciones que puede usar:
- www.example.com/?redirect_to=random&each_once=rewind. Asegura que los visitantes no vean la misma publicación dos veces. Este enlace se reinicia automáticamente una vez que han visto todas las publicaciones de su sitio.
- www.example.com/?redirect_to=random&count=10. Solo muestra publicaciones aleatorias de sus 10 artículos publicados más recientemente.
- www.example.com/?redirect_to=random&after=1 month ago. Solo muestra publicaciones aleatorias que se publicaron en el último mes.
- &cache=120. Agregue esto al final de su URL para guardar (en caché) temporalmente el resultado durante 120 segundos. Esto ayuda a que su sitio de WordPress se cargue más rápido.
Por ejemplo, puede crear un botón que muestre una publicación aleatoria, seleccionada de sus 20 publicaciones más recientes:

Si prefiere un botón de ‘Publicación Aleatoria’ listo para usar, el plugin también incluye un práctico shortcode.
Puede agregar fácilmente el shortcode [redirect_to_post_button] a cualquier publicación, página o área de widget. Si necesita ayuda, consulte nuestra guía para principiantes sobre cómo agregar un shortcode en WordPress.

Cómo redirigir usuarios a una publicación aleatoria en WordPress (con código)
Si prefiere no instalar otro plugin de un solo propósito, puede configurar la misma redirección de ‘Publicación Aleatoria’ con un fragmento de código en su lugar.
Este fragmento crea una URL completamente nueva en tu sitio web, que se verá algo así como ejemplo.com/aleatorio.
Esto no afectará a ninguna de tus páginas existentes ni a los lectores que estén navegando por tus publicaciones. La redirección solo ocurre cuando alguien visita manualmente esa nueva dirección /aleatorio, como cuando hacen clic en un botón o enlace de menú de 'Publicación Aleatoria' que hayas configurado.
Así que, cada vez que un lector visite ejemplo.com/aleatorio, WordPress elegirá automáticamente una de tus publicaciones publicadas al azar y lo redirigirá directamente a ella.
Para mantener tu sitio seguro, agregaremos el código usando el plugin WPCode que configuramos anteriormente. Esto asegura que un solo carácter mal escrito no rompa tu sitio web ni te bloquee el acceso a tu área de administrador.
Simplemente puedes pegarlo como un nuevo fragmento de PHP en WPCode, siguiendo los mismos pasos que cubrimos anteriormente:
<?php
function wpb_random_post_rewrite() {
add_rewrite_rule( '^random/?$', 'index.php?random_redirect=1', 'top' );
}
add_action( 'init', 'wpb_random_post_rewrite' );
function wpb_random_post_query_var( $vars ) {
$vars[] = 'random_redirect';
return $vars;
}
add_filter( 'query_vars', 'wpb_random_post_query_var' );
function wpb_do_random_post_redirect() {
if ( get_query_var( 'random_redirect' ) ) {
$random = get_posts( array(
'post_type' => 'post',
'orderby' => 'rand',
'posts_per_page' => 1,
) );
if ( $random ) {
wp_redirect( get_permalink( $random[0]->ID ), 307 );
exit;
}
}
}
add_action( 'template_redirect', 'wpb_do_random_post_redirect' );
Es posible que hayas notado que este fragmento utiliza una redirección 307, que le indica al navegador que el destino es temporal.
Esto se debe a que los navegadores web almacenan en caché las redirecciones 301 permanentes para acelerar los tiempos de carga. Como resultado, el navegador seguiría enviando a un visitante a la misma publicación, rompiendo la aleatorización por completo.
Una vez que hayas guardado y activado el fragmento, simplemente ve a Ajustes » Enlaces permanentes en tu panel de WordPress y haz clic en el botón 'Guardar cambios'.
Este rápido paso se conoce como 'vaciar tus enlaces permanentes'. Obliga a WordPress a actualizar su estructura de enlaces para que pueda reconocer instantáneamente tu nueva URL /aleatorio.
Si estás utilizando un plugin de caché de WordPress para acelerar tu sitio, asegúrate de agregar /aleatorio a su lista de URLs excluidas. Esto asegura que la redirección se ejecute de forma nueva cada vez en lugar de servir una página en caché a tus visitantes.
Tu redirección aleatoria ahora está lista para usarse. Puedes apuntar cualquier enlace a ejemplo.com/aleatorio, ya sea un botón, un elemento del menú de navegación, un widget de barra lateral o un enlace de texto dentro de una publicación.
Solo recuerda reemplazar ejemplo.com con el nombre de tu propio dominio.
Esperamos que este artículo te haya ayudado a aprender cómo mostrar publicaciones aleatorias en WordPress. También te puede interesar consultar nuestra guía para principiantes sobre cómo reordenar fácilmente las publicaciones en WordPress y nuestro tutorial sobre cómo crear una publicación privada en WordPress.
Si te gustó este artículo, suscríbete a nuestro Canal de YouTube para ver tutoriales en video de WordPress. También puedes encontrarnos en Twitter y Facebook.

Dayo Olobayo
He intentado varios métodos para mostrar publicaciones aleatorias, pero ninguno funcionó tan bien como este método de consulta personalizada. Este tutorial es fácil de entender y me encanta cómo proporcionaste ejemplos y fragmentos de código para ayudar a ilustrar el proceso. Tu experiencia me ha ahorrado mucho tiempo y frustración. ¡Sigue compartiendo tus conocimientos con nosotros!
Jiří Vaněk
Según entiendo, el código no incluye las imágenes destacadas de las publicaciones. ¿Hay alguna opción con código para mostrar también las publicaciones con imágenes destacadas?
Soporte de WPBeginner
Quizás quieras echar un vistazo a las últimas publicaciones del blog en el editor de bloques para eso.
Administrador
Jiří Vaněk
Gracias por el consejo. Sí, eso me funciona. Uso Elementor y ocasionalmente Seed Prod. Como nunca uso Gutenberg, esta opción nunca se me ocurrió. Simplemente no sabía que Gutenberg tenía un bloque así. Gracias por el consejo.
Chris Smith
Mis publicaciones fijadas siempre aparecen en mis publicaciones aleatorias. ¿Hay alguna forma de excluir las publicaciones fijadas de este código?
Soporte de WPBeginner
Para lograr eso, recomendaríamos usar el plugin del segundo método en lugar de modificar el código.
Administrador
Michael
¿Hay una forma fácil de almacenar en caché los resultados durante un cierto período de tiempo en lugar de aleatorizar cada vez? ¿Quizás como actualizar una vez cada 24 horas para reducir la carga en las llamadas a la base de datos cada vez?
Soporte de WPBeginner
Para esa funcionalidad, deberías consultar con el soporte del plugin para ver si está disponible.
Administrador
Marvin Duru
Por favor, intenté agregar el shortcode en una posición específica de mi sitio web, no dentro de la publicación en PHP, pero la sección de publicaciones aleatorias no se mostró, solo apareció mi texto “[wpb-random-posts]”.
¿Qué debo hacer?
Soporte de WPBeginner
Al usar el editor de bloques, deberías asegurarte de agregarlo usando un bloque de shortcode.
Administrador
Zeynep
Gracias, el código funciona perfectamente. Cambié la primera página de mi sitio de WordPress a index.html, ¿qué necesito para ejecutar [wpb-random-posts] en mi página HTML? Mi inglés es un poco débil, espero que me entiendas.
Soporte de WPBeginner
Necesitarías que la página sea una página de WordPress para que funcione un shortcode de WordPress.
Administrador
Elle
¿Cómo abordarías el estilo de esto? Me confunde cómo controlaría el diseño de esto, nunca he trabajado con estilo PHP.
Soporte de WPBeginner
Dependería del estilo que quieras agregar para saber qué se necesita hacer. Puedes agregar una clase en el código HTML para tener algo a lo que apuntar.
Administrador
Maria Cristhiane Amorim
¡Hola! ¿Puedo hacer esto en un listado?
Soporte de WPBeginner
Necesitarías aclarar a qué te refieres con eso
Administrador
Rob Packenham
Gracias por el útil artículo.
Tengo una pregunta: las páginas de mi sitio de WordPress incluyen una barra lateral con un widget de publicaciones aleatorias (extractos).
El problema es que Google indexa las páginas y 've' los extractos de publicaciones aleatorias como contenido de la página. Por lo tanto, en la búsqueda de Google, una página puede aparecer como coincidente con un término de búsqueda solo porque uno de los extractos de publicaciones aleatorias en la página coincidió con el término (no el contenido principal de la página).
Pero, cuando un usuario hace clic en el enlace en los resultados de búsqueda de Google, verá la página con un conjunto diferente de extractos de publicaciones aleatorias en la barra lateral, no el extracto de publicación con el texto coincidente. Por lo tanto, para ellos parece una mala búsqueda.
Idealmente me gustaría excluir los extractos de publicaciones aleatorias del índice de Google, es decir, ocultarlos de Google, pero eso no parece posible (?).
¡Si tienes alguna sugerencia, te lo agradecería! Gracias.
Jun Enriquez
Intenté esto y destruyó mi sitio, ¿cómo lo restablezco?
Error http 500
Por favor, ayúdenme
Gracias
Jun
Yin
Muchas gracias por compartir esto. Usé otro plugin para publicaciones aleatorias que ya no funciona. Luego encontré tu sitio y he instalado el plugin. Funciona a la perfección.
Lisa
¡Hola y gracias por este útil tutorial!
¿Podrías decirme cuál sería el fragmento de código para agregar y mostrar publicaciones aleatorias que estén en una categoría específica? Mi tema no muestra una barra lateral, así que no puedo usar el plugin y ya tiene una pantalla de publicaciones aleatorias debajo de cada artículo, pero se incluyen y muestran publicaciones de todas las categorías. Intenté revisar el código del tema y agregar 'post_category' => 'nombre-de-la-categoría', pero no funciona. ¿Alguna idea?
Raff
¡Hola! Solo quiero preguntar qué pasaría si quiero cambiar la publicación aleatoria cada semana o en cualquier momento dado. Por ejemplo, muestro un conjunto de publicaciones aleatorias, no cambiará hasta dentro de 7 días o en cualquier momento dado. ¡Gracias!
Abhimanyu Kashyap
Muchas gracias, pude mostrar publicaciones aleatorias. Cambié el número de publicaciones a 1 para mostrar 1 publicación aleatoria. ¿Hay una mejor manera de hacerlo?
También me gustaría saber cómo puedo usar una variable en lugar del tipo de publicación e ingresar una donde coloco el código corto, por ejemplo: [wpb-random-posts('post')].
¿Cómo puedo lograr esto??
devender
gracias por compartir este código, es muy útil...
Nate
Establecer posts en orderly => 'rand' es una medida a medias. Claro, la publicación se muestra 'aleatoriamente', pero como mencionó DI SEKITAR anteriormente, ¿de qué sirve mostrar una publicación aleatoria si será la misma publicación aleatoria cada vez que alguien visite el sitio?
Nate
Quise decir 'orderby'... me autocorrigió
smehsan
Lo siento, pero la cadena no estaba funcionando y acabo de hacer la cadena global y ahora funciona bien.
global $string;
Marléne Rose Shaw
Gracias por este gran tutorial. ¿Hay alguna forma de obtener el shortcode y luego mostrar las publicaciones aleatorias debajo del contenido en una página en lugar de la barra lateral??
Katherine
JAYKAY
Para excluir la publicación actual, agrega
‘post__not_in’ => array(get_the_id())
a la consulta.
Así que tus argumentos ahora serán:
$args = array( 'post_type' => 'post', 'orderby' => 'rand', 'posts_per_page' => 5, 'post__not_in' => array(get_the_id()), );
JAYKAY
Funciona bien con este fragmento de código.
Gracias KATHERINE
di sekitar
información muy interesante, intenté usar el plugin que mencionaste, pero tengo una gran pregunta.
¿Cómo hacer que las publicaciones aleatorias sean diferentes para cada visitante o dispositivo que visita mi sitio?
porque intenté visitar mi sitio usando otra computadora portátil y un teléfono inteligente, pero las publicaciones aleatorias de esos 2 dispositivos son las mismas.
JayKay
Hola,
Advanced Random Posts Widget es un plugin realmente bueno, pero tengo un problema. ¿Cómo podrías excluir la publicación actual/activa al mostrar una publicación aleatoria? ¿Es posible solucionar esto?
El problema es el mismo con el código del método 2.
Harry Stoddart
Usa la variable “Offset” para omitir las últimas X publicaciones.
Khalil Sillah
Como principiante, ¿qué lista de materiales necesitaría para aprender WordPress?
Ahm Clex
Una PC, WiFi y dedicación. Eso es todo lo que necesitas para aprender cualquier cosa hoy en día.
Gaurav Khurana
gracias por esto. Siempre he estado pensando en esto, ya que por defecto las últimas publicaciones son visibles en la página de inicio. Gracias por esto, definitivamente usaré este plugin