J'essaie de créer une liste de publications paginée, et j'ai utilisé le Codex pour écrire du code mais je semble avoir fait quelque chose de mal.
Ce sont mes arguments wp_query
$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
)
);
Le contenu de $paged
est affiché en tant que 1
, ce à quoi on pourrait s'attendre
J'ai ajouté next_posts_link
à ma déclaration if
mais ils ne s'affichent pas.
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 );
}
La page sur laquelle cela s'affiche n'est pas une page de couverture, mais une page statique que j'ai créée. J'ai créé le modèle page-news.php
, puis créé une page intitulée "Actualités", où se trouve ce code. Cela pourrait-il être la raison?
Cela fonctionne pour moi sur une seule page en utilisant un modèle. Assurez-vous simplement de définir next_posts_link( 'Older Entries »', $the_query->max_num_pages );
.
// 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();