Überschreiben Sie die Standardnummer der Beiträge, die für eine einzelne Schleife angezeigt werden sollen?
Frage
Ist es möglich, die festgelegte Anzahl der Blog -Beiträge pro Seite zu überschreiben (wie unter den Lesungeinstellungen im WordPress -Administrator definiert)? Ich möchte es so machen, dass eine benutzerdefinierte Schleife, die ich verwende, eine unbegrenzte Nummer zeigt.
Lösung
Das Argument, das steuert, wie viele Beiträge in der Abfrage angezeigt werden, ist post_per_page
<?php query_posts( array(
'post_type' => 'post',
'posts_per_page' => -1 )
);
?>
Zu beachten ist auch, dass in der 3.0 -Filiale ein Fehler vorhanden ist, der verhindert, dass die Ganzzahl von -1 alle Beiträge anzeigt. Es ist in 3.1 festgelegt, aber eine Problemumgehung wäre, eine sehr hohe Zahl anstelle von -1 zu verwenden
sehen:
Andere Tipps
Sicher, ändern Sie die Abfrage durch Hinzufügen
<?php query_posts('post_type=post&numberposts=-1'); ?>
Eileen hat Recht, aber es ist besser, Argumente als Array zu verwenden <?php query_posts( array( 'post_type' => 'post', 'numberposts' => -1 ) ); ?>
Ich hatte das gleiche Problem. Ich habe beschlossen, eine benutzerdefinierte Variable hinzuzufügen und diese Variable während der pre_get_posts
um das zu setzen post_per_page
query_var:
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');
}
}
Dann ging ich noch weiter und ließ es den genauen Betrag erhalten, den Sie in der benutzerdefinierten Abfrage VAR anzeigen möchten:
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);
}
}
Arbeitete für mich ..