Cum să afișezi două postări aleatorii dintr-un tip personalizat de postare
Am configurat codul de mai jos pentru a afișa informații din ultimele două postări ale unui tip personalizat de postare (de asemenea, parcurge și adaugă o clasă "first" elementelor alternative pentru scopuri de layout). Cum aș putea modifica acest cod pentru a afișa două postări aleatorii?
<?php
$counter = 1;
$args = array( 'post_type' => 'custom_advert', 'posts_per_page' => 2, 'orderby' => 'rand' );
$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="[folosind meta personalizat pentru a obține adresa link]"><img src="[folosind meta personalizat pentru a afișa imaginea]"></a></div>';
$counter++;
endwhile; ?>
Ai nevoie de un orderby
argument.
$args = array(
'post_type' => 'custom_advert',
'posts_per_page' => 2,
'orderby' => 'rand'
);
Aceasta ar trebui să preia postările într-o ordine aleatorie și să se oprească după preluarea primelor două, deci două postări aleatorii.

Este „computațional” costisitor dacă ai câteva mii de postări? Mă refer la ordonarea aleatoare.

@DrunkenMaster : WordPress folosește funcția RAND()
din MySQL pentru asta și aceasta nu este niciodată un operator cu adevărat eficient, dar dacă asta ai nevoie, asta este. Există câteva încercări mai complexe pentru un RAND
„mai bun” dacă cauți, dar nu am văzut niciodată beneficiul.

Am creat un plugin folosind acest cod: https://wordpress.org/plugins/load-random-post/
