Mostra due post casuali da un custom post type
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; ?>
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.

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

@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.

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