Random Posts en el index de Wordpress

  • Autor Autor Carlos Arreola
  • Fecha de inicio Fecha de inicio
Carlos Arreola

Carlos Arreola

Admin
Sigma
Verificado
Verificación en dos pasos activada
Verificado por Whatsapp
Verificado por Binance
¡Excelente comerciante!
Bueno he buscado como hacer esto y la verdad es que no lo encuentro por ningun lado.

La idea es que quiero mostrar en el index entradas variadas y no acomodadas por fechas... por ejemplo en juegosmario.us donde tarde o temprano se acabaran los juegos.

Entonces me gustaría que simplemente siempre aparecieran las entradas al azar... y por mas que he buscado solo encuentro plugins para entradas o similares, pero yo ocupo la instrucción para que el index realize esta función.

Alguien? 😛7:
 
Yo me se este: Enlace eliminado

Me acuerdo que tiene algún error de algún tipo, aunque no me acuerdo donde y porqué... pero pruébalo y me dices.

Agrego, este código funciona mucho mejor. Es un poquito mas complejo, pero sirve.

PHP:
<div class="sidebox clearingfix">

  <?php // Inicia código consulta post al azar

    global $wpdb; // Defino la variable global

    // Esta es la consulta

    $qryAzar = "SELECT DISTINCT ID

                FROM $wpdb->posts

                WHERE post_status = 'publish'

                ORDER BY RAND()

                LIMIT 0,1";

    $azares = $wpdb->get_results($qryAzar);

    $azar_ID = '';

    if($azares){

      foreach($azares as $azar){

        $azar_ID = get_permalink($azar->ID);

      }

    }

  ?>

  <a href="<?php echo $azar_ID; ?>">

    <img src="<?php bloginfo('stylesheet_directory'); ?>/images/azar.png" />

  </a>

 <br clear="all" />

</div>
 
Última edición:
A ver deja lo pruebo!

Lo he probado y me muestra los ultimos posts de igual manera... hay algo que deba borrar en el index? porque así nada más no obedece la función de random
 
A ver deja lo pruebo!

Lo he probado y me muestra los ultimos posts de igual manera... hay algo que deba borrar en el index? porque así nada más no obedece la función de random


Debería estar fuera de cualquier otro loop.
 
De hecho lo puedes hacer fácilmente y sin plugins; en donde quieras mostrar los posts (index.php):

Insertar CODE, HTML o PHP:
<?php
    query_posts(array('orderby' => 'rand', 'showposts' => 1));
    if (have_posts()) :
        while (have_posts()) : the_post(); ?>
            <!-- el contenido del post aquí -->
        endwhile;
    endif;?>

Sólo cambias showposts = 1 por el número de entradas que quieras mostrar. Espero te sirva, saludos
 
Magnífico tocayo! eres un maestro
 
Bueno sevenmix gracias a alankun tu problema es resuelto esa es la mejor opcion y encima sin plugin
 
Alankun, esa forma, si mal no leo lo que hara es los ultimos 10 -por decir una suma- posts mostrarlos al azar y no todos los que tiene el blog, ¿o si?
 
Alankun, esa forma, si mal no leo lo que hara es los ultimos 10 -por decir una suma- posts mostrarlos al azar y no todos los que tiene el blog, ¿o si?

El parámetro showposts indica cuántos posts quieres mostrar, si lo omites, por defecto muestra todos los posts de tu blog, así como el loop normal.
En el codex de WordPress viene más información sobre la función query_posts
 
Última edición:
No, no, lo que me refiero es que esa funcion, digamos muestra los ultimos 10 posts, pero los pondra al azar, pero siempre mostrara los ultimos 10 posts en portada -al azar en su posicion- y no todos los posts del blog, no se si me explique xD
 
No, no, lo que me refiero es que esa funcion, digamos muestra los ultimos 10 posts, pero los pondra al azar, pero siempre mostrara los ultimos 10 posts en portada -al azar en su posicion- y no todos los posts del blog, no se si me explique xD

Creo que no te entiendo ^^
Esa función muestra todos los posts, pero en orden aleatorio, tú seleccionas cuántos quieres mostrar en portada (desde las opciones de WordPress). Si tienes 50 posts escritos, y configuraste WP para que muestre 5 posts por página, entonces la función extrae todos los posts, los despliega en forma aleatoria, y como sólo son 5 posts/página, se generan los enlaces de página siguiente y página anterior. Espero haberme explicado bien, saludos 🙂
 
Paso a explicar, el codigo hace un ramdom de tooooooodos los post y el parámetro showposts indica cuántos posts quieres mostrar.
 
Puse finalmente el advanced posts random.

Pueden verlo en juegosmario.us

Los primeros 3 posts son los random y los últimos 3 son los últimos del blog.
 
Carlos hola. He llegado a este tema porque busco algo parecido, o lo mismo, y el plugin que dices que usaste ya está desactualizado y no es compatible con las nuevas versiones de wordpress. Así que cuando lo he instalado no me ha funcionado. ¿Has encontrado otras opciones posteriores? En el blog de juegos que dices que lo aplicaste ya se redicecciona aa otra página distinta ...
 
bueno una manera facil que te puede funcionar dependiendo el theme que uses, si el theme usa widget para la pagina principal tienes que saber donde ubicarlo. Si es un blog normal puedes poner este codigo en el index.php
Insertar CODE, HTML o PHP:
<?php global $query_string;
query_posts( $query_string . '&orderby=rand' ); ?>
antes de algo parecido a esto o antes del codigo que muestra las publicaciones!
Insertar CODE, HTML o PHP:
<?php if (have_posts()) : while (have_posts()) : the_post(); ?>
 
[MENTION=124387]ltlobos7[/MENTION], eres una máquina. Me a sido de gran ayuda el código.

Gracias. :encouragement:
 
bueno una manera facil que te puede funcionar dependiendo el theme que uses, si el theme usa widget para la pagina principal tienes que saber donde ubicarlo. Si es un blog normal puedes poner este codigo en el index.php
Insertar CODE, HTML o PHP:
<?php global $query_string;
query_posts( $query_string . '&orderby=rand' ); ?>
antes de algo parecido a esto o antes del codigo que muestra las publicaciones!
Insertar CODE, HTML o PHP:
<?php if (have_posts()) : while (have_posts()) : the_post(); ?>

Bro en mi wordpress esta lo de las entradas en page.php

Lo he puesto y no me funciona! Te adjunto el archivo page.php como me quedo!

PHP:
<?php get_header(); ?>
<?php global $query_string;
query_posts( $query_string . '&orderby=rand' ); ?>
<?php if (have_posts()) : while (have_posts()) : the_post(); ?>
<div class="wrap grid content-page">
<div style="margin:0 auto;max-width:900px;"><?php the_content(); ?></div>
			<?php endwhile; else: ?>
		  <p class="none"><?php _e('Nothing Found'); ?></p><?php endif; ?>
</div>
 <?php get_footer(); ?>
 
Atrás
Arriba