¿Quieres mostrar publicaciones en orden aleatorio mientras conservas el orden de paginación? Este fragmento te permitirá mostrar una lista aleatoria de publicaciones aleatorias que permanecerán en el mismo orden mientras la sesión exista. Esto asegura que la paginación sea consistente.
Instrucciones:
Todo lo que tienes que hacer es agregar este código al archivo functions.php de tu tema o a un plugin específico del sitio:
session_start();
add_filter( 'posts_orderby', 'randomise_with_pagination' );
function randomise_with_pagination( $orderby ) {
if( is_front_page() ) {
// Reset seed on load of initial archive page
if( ! get_query_var( 'paged' ) || get_query_var( 'paged' ) == 0 || get_query_var( 'paged' ) == 1 ) {
if( isset( $_SESSION['seed'] ) ) {
unset( $_SESSION['seed'] );
}
}
// Get seed from session variable if it exists
$seed = false;
if( isset( $_SESSION['seed'] ) ) {
$seed = $_SESSION['seed'];
}
// Set new seed if none exists
if ( ! $seed ) {
$seed = rand();
$_SESSION['seed'] = $seed;
}
// Update ORDER BY clause to use seed
$orderby = 'RAND(' . $seed . ')';
}
return $orderby;
}
Nota: Si es la primera vez que agregas fragmentos de código en WordPress, consulta nuestra guía sobre cómo copiar / pegar fragmentos de código correctamente en WordPress, para que no rompas accidentalmente tu sitio.
Si te gustó este fragmento de código, considera echar un vistazo a nuestros otros artículos en el sitio como: Los 7 mejores creadores de páginas de WordPress de arrastrar y soltar comparados.
¡Gracias!
Funciona a la perfección... pero crea 9 páginas de publicación adicionales al final, que llevan a "Página no encontrada 404".
¿Alguna idea?
Gracias de antemano.
Josh
¡Gracias! Funciona a la perfección... pero ¿qué pasa cuando se usa un plugin de caché?... He purgado toda la caché y todavía no funciona solo en la primera página.
Cualquier idea es apreciada.
Gracias una vez más.
Josh.
¡Exactamente lo que estaba buscando, gracias!
Hola, este código funciona muy bien. El único problema es que en la página principal también muestra el widget "publicaciones recientes" en orden aleatorio. ¿Alguna idea de cómo cambiar eso?
No me había dado cuenta hasta que lo mencionaste, pero tenemos exactamente el mismo problema, me alegra que lo hayas señalado.
¿Lograste resolverlo de alguna manera?
Puse el fragmento usando el plugin de fragmentos. Estoy configurando este sitio localmente y solo tengo 4 publicaciones de prueba. No noto que las publicaciones se aleatoricen... ¿en qué punto ocurre la aleatorización?
¡¡GRACIAS!!
¡¡¡MUCHAS GRACIAS!!! ¡¡¡ME AYUDASSTE MUCHO!!!
Me alegra que el fragmento haya sido útil
¿Se supone que esto soluciona el problema de las 'segundas páginas con publicaciones aleatorias'? ¿O es para ilustrar el problema? Lo he usado para generar algunas publicaciones ordenadas aleatoriamente, pero cuando voy a la segunda página, la aleatorización obviamente comienza de nuevo, porque puedo o no obtener las mismas publicaciones.
Muchas gracias. Había estado buscando un código como este para compartir más artículos con el lector al final de mi sitio.