Ich versuche, eine paginierte Liste von Posts zu erstellen, und habe den Codex verwendet, um Code zu schreiben, aber ich scheine etwas falsch zu machen.
Das sind meine wp_query
Argumente
$paged = ( get_query_var( 'paged' ) ) ? get_query_var( 'paged' ) : 1;
$the_query = new WP_Query(
array
(
'posts_per_page' => 5,
'post_type' => 'post',
'paged' => $paged
)
);
Der Inhalt von $paged
wird erwartungsgemäß als 1
ausgegeben
Ich habe next_posts_link
zu meiner if
-Anweisung hinzugefügt, aber sie werden nicht angezeigt.
if ( $the_query->have_posts() ) {
previous_posts_link( '« Newer Entries' );
while ( $the_query->have_posts() ) {
$the_query->the_post();
echo '<div class="news-item">';
// post stuff here
echo '</div>';
}
next_posts_link( 'Older Entries »', 0 );
}
Die Seite, auf der dies angezeigt wird, ist keine Startseite, sondern eine statische Seite, die ich erstellt habe. Ich habe eine page-news.php
-Vorlage erstellt und dann eine Seite mit dem Namen "News" erstellt, auf der sich dieser Code befindet. Könnte das der Grund sein?
Dies funktioniert für mich auf einer einzelnen Seite mit einer Vorlage. Stellen Sie einfach sicher, dass next_posts_link( 'Older Entries »', $the_query->max_num_pages );
eingestellt ist.
// set the "paged" parameter (use 'page' if the query is on a static front page)
$paged = ( get_query_var( 'paged' ) ) ? get_query_var( 'paged' ) : '1';
$args = array (
'nopaging' => false,
'paged' => $paged,
'posts_per_page' => '5',
'post_type' => 'post',
);
// The Query
$query = new WP_Query( $args );
// The Loop
if ( $query->have_posts() ) {
previous_posts_link( '« Newer Entries' );
while ( $query->have_posts() ) {
$query->the_post();
echo '<div class="news-item">';
// post stuff here
echo '<h1 class="page-title screen-reader-text">' . the_title() . '</h1>';
echo '</div>';
}
next_posts_link( 'Older Entries »', $query->max_num_pages );
} else {
// no posts found
echo '<h1 class="page-title screen-reader-text">No Posts Found</h1>';
}
// Restore original Post Data
wp_reset_postdata();