J'ai deux boucles différentes. La valeur par défaut sur la page d'accueil, mais une boucle secondaire sur la page d'archive. Il saisit tout le contenu, comme ceci:
<?php // WP_Query arguments
$args = array (
'posts_per_page' => '3'
);
// The Query
$archiveQuery = new WP_Query( $args );
// The Loop
if ( $archiveQuery->have_posts() ) {
while ( $archiveQuery->have_posts() ) {
$archiveQuery->the_post(); ?>
<div class="post">
<a href="<?php the_permalink() ?>">
<?php first_item(); ?> </a>
Cependant, lorsque j'inclus posts_nav_link();
, il ne s'affiche pas. Est-ce parce que c'est une page statique? J'utilise ceci pour un parchemin infini.
Assurez-vous et incluez une wp_reset_postdata () à la fin d'une boucle créée avec WP_Query.
Utilisez
wp_reset_postdata()
pour restaurer la variable globale $ post de la boucle de requête principale après une requête secondaire ... https://codex.wordpress.org/Function_Reference/wp_reset_postdata
// The Query
$the_query = new WP_Query( $args );
// The Loop
if ( $the_query->have_posts() ) {
echo '<ul>';
while ( $the_query->have_posts() ) {
$the_query->the_post();
echo '<li>' . get_the_title() . '</li>';
}
echo '</ul>';
/* Restore original Post Data */
wp_reset_postdata();
} else {
// no posts found
}
posts_nav_link
est destiné aux pages d'archives. Cette fonction utilise get_next_posts_nav_link
qui utilise la variable global
__ $wp_query
. Il y a un chèque pour !is_singular()
. Cela sera toujours faux sur votre page "statique", puisque $wp_query
représentera la page (simple) et non la requête que vous avez créée. Donc, oui, c'est parce que c'est une page statique.
Chip Bennett a écrit/compilé une réponse assez exhaustive expliquant comment faire fonctionner la pagination .