Cum să afișezi două postări aleatorii dintr-un tip personalizat de postare

10 aug. 2013, 16:16:10
Vizualizări: 13.8K
Voturi: 3

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; ?>
0
Toate răspunsurile la întrebare 1
3

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.

10 aug. 2013 17:06:06
Comentarii

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

imrek imrek
22 iun. 2015 10:47:25

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

s_ha_dum s_ha_dum
22 iun. 2015 16:35:30

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

SParc SParc
25 feb. 2018 13:59:07