Mostra due post casuali da un custom post type

10 ago 2013, 16:16:10
Visualizzazioni: 13.8K
Voti: 3

Ho impostato il codice qui sotto per mostrare informazioni dagli ultimi due post di un custom post type (effettua anche un loop e aggiunge una classe "first" agli elementi alternati per scopi di layout). Come posso modificarlo per mostrare due post casuali?

<?php
$counter = 1;
$args = array( 
    'post_type' => 'custom_advert', 
    'posts_per_page' => 2,
    'orderby' => 'rand'  // Aggiungi questo parametro per ottenere post casuali
);
$loop = new WP_Query( $args );
while ( $loop->have_posts() ) : $loop->the_post();
    echo '<div class="sixcol ';
    if ( $counter % 2 == 1 ) { echo 'first'; }
    echo '"><a href="[using custom meta to get link address here]"><img src="[using custom meta to show image here]"></a></div>';
    $counter++;
endwhile; ?>
0
Tutte le risposte alla domanda 1
3

Hai bisogno di un argomento orderby.

$args = array( 
  'post_type' => 'custom_advert', 
  'posts_per_page' => 2,
  'orderby' => 'rand'
);

Questo dovrebbe recuperare i post in ordine casuale e fermarsi dopo aver ottenuto i primi due, quindi due post random.

10 ago 2013 17:06:06
Commenti

È "computazionalmente" costoso se hai diverse migliaia di post? Intendo l'ordinamento casuale.

imrek imrek
22 giu 2015 10:47:25

@DrunkenMaster : WordPress utilizza la funzione RAND() di MySQL per questo e non è mai un operatore veramente efficiente, ma se è ciò di cui hai bisogno, è ciò di cui hai bisogno. Ci sono alcuni tentativi piuttosto complessi per ottenere un RAND "migliore" se cerchi in giro, ma non ho mai visto il vantaggio.

s_ha_dum s_ha_dum
22 giu 2015 16:35:30

Ho creato un plugin utilizzando questo codice: https://wordpress.org/plugins/load-random-post/

SParc SParc
25 feb 2018 13:59:07