Überschreiben Sie die Standardnummer der Beiträge, die für eine einzelne Schleife angezeigt werden sollen?

wordpress.stackexchange https://wordpress.stackexchange.com/questions/8796

  •  16-10-2019
  •  | 
  •  

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.

War es hilfreich?

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:

http://core.trac.wordpress.org/ticket/15150

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

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit wordpress.stackexchange
scroll top