Cum se setează numărul de articole pe pagină folosind WP_Query()
Încerc să setez numărul de posts_per_page în mod dinamic folosind propria mea variabilă. Acest cod funcționează bine:
query_posts( $query_string . "&posts_per_page=" . $myvar )
// apoi afișează loop-ul folosind get_template_part( 'loop' );
Asta funcționează bine, dar aș dori să știu cum să fac acest lucru folosind $wp_query în loc de query_posts. Totuși, următorul cod nu funcționează:
$wp_query->set('posts_per_page', $myvar)
// apoi afișează loop-ul folosind get_template_part( 'loop' );
Acest lucru nu are niciun efect asupra numărului de articole afișate. Folosesc metoda set incorect sau îmi scapă ceva?

query_posts
va executa din nou interogarea (va distruge wp_query curent și va crea unul nou, apoi va face interogarea cu parametrii pe care i-ați transmis)
Pentru a obține același comportament după setarea noului parametru cu set_var
, trebuie să interogați din nou baza de date folosind ceva de genul:
$wp_query->set('posts_per_page', 1);
$wp_query->query($wp_query->query_vars);

când apelezi query_posts
cu o interogare modificată în șablonul tău, de fapt rulezi o altă interogare și renunți la cea originală. încercarea de a seta o variabilă de interogare în șablon nu funcționează deoarece interogarea originală a avut deja loc. pentru a folosi $wp_query->set()
trebuie să te conectezi înainte ca baza de date să fie interogată, de exemplu pe acțiunea pre_get_posts
.

Salut! Poți să fii mai explicit cu răspunsurile tale și să explici și de ce acest răspuns ajută? Altfel, răspunsurile sunt marcate automat ca calitate scăzută de către robotul comunității. Mulțumesc. Sfat: Va trebui cel puțin să înfășori apelul într-o funcție de callback atașată la un filtru :)
