Suprascrie numărul implicit de articole afișate pentru o buclă personalizată?
Argumentul care controlează câte articole sunt afișate în interogare este posts_per_page
<?php query_posts( array(
'post_type' => 'post',
'posts_per_page' => -1 )
);
?>
De asemenea, este important de menționat că există o eroare în ramura 3.0 care împiedică afișarea tuturor articolelor atunci când se folosește valoarea -1. Aceasta a fost corectată în versiunea 3.1, dar o soluție temporară ar fi utilizarea unui număr foarte mare în loc de -1.
vezi:

Există o greșeală de tipar în parametrul tău pentru posts_per_page. Ai scris post_per_page în loc de posts_per_page. (Am încercat să editez postarea ta, dar nu am permisiuni de editare). Mulțumesc mult!

Am avut aceeași problemă... Am decis să adaug o variabilă personalizată și apoi să prind acea variabilă în timpul pre_get_posts
pentru a seta query_var-ul post_per_page
:
function custom_query_vars_filter($vars) {
$vars[] = 'post_per_page_override';
return $vars;
}
add_filter( 'query_vars', 'custom_query_vars_filter' );
add_action( 'pre_get_posts', 'rc_modify_query_get_design_projects' );
function rc_modify_query_get_design_projects( $query ) {
if( $query->query_vars['post_per_page_override'] == '3') {
$query->set('posts_per_page', '3');
}
}
Apoi am mers și mai departe și am făcut să obțină exact cantitatea pe care doriți să o afișați în variabila personalizată a interogării:
function custom_query_vars_filter($vars) {
$vars[] = 'post_per_page_override';
return $vars;
}
add_filter( 'query_vars', 'custom_query_vars_filter' );
add_action( 'pre_get_posts', 'rc_modify_query_get_design_projects' );
function rc_modify_query_get_design_projects( $query ) {
if( $query->query_vars['post_per_page_override']) {
$customPPPlimit = $query->query_vars['post_per_page_override'];
$query->set('posts_per_page', $customPPPlimit);
}
}
A funcționat pentru mine...

Dacă folosești o buclă personalizată, pur și simplu specifică posts_per_page
, de exemplu:
$query = new \WP_Query( [ 'posts_per_page' => 100 ] );
if ( $query->have_posts() ) {
......etc
Poți seta posts_per_page
la -1
pentru un număr nelimitat de articole, dar aceasta este o practică foarte proastă. În schimb, setează câte articole crezi că serverul tău poate servi fără să cedeze, astfel încât site-ul tău să nu se blocheze dacă sunt create prea multe articole. 200 este o limită superioară bună.
Altfel, folosește filtrul pre_get_posts
pentru a modifica parametrii transmiși către interogări:
add_action( 'pre_get_posts', function ( $query ) {
if ( is_admin() ) {
return;
}
$query->set( 'posts_per_page', 100 );
}
Reține că aceasta va seta toate interogările la 100 de pagini, inclusiv feed-uri, REST API, XMLRPC, etc.
În plus, unii oameni vor recomanda query_posts
, dar aceasta este o practică proastă și va cauza multe alte probleme.
