web-dev-qa-db-fra.com

pagination dans WP_Query sur une page statique

J'ai une page statique et sur cette page, je souhaite afficher une liste de messages de blog. Je veux 12 articles par page (donc je veux que la liste soit paginée).

Tout fonctionne très bien, sauf pour la pagination. Voici mon code:

    <section id="blogposts" class="content-block content-3-5 blogposts">
            <div class="row">
                <!-- Feature Box 1 -->
                <?php
                    $paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
                    $blogposts_args = array(
                        'post_type' => 'post',
                        'post_status' => 'publish',
                        'nopaging' => false,
                        'order' => 'DESC',
                        'orderby' => 'date',
                        'posts_per_page' => '12',
                        'paged' => $paged
                    )
                    ?>
                <?php $blogposts = new WP_Query( $blogposts_args ); ?>
                <?php if ( $blogposts->have_posts() ) : ?>
                    <?php $blogposts_item_number = 0; ?>
                    <?php while ( $blogposts->have_posts() ) : $blogposts->the_post(); ?>
                    <?php
                        $thumb = wp_get_attachment_image_src( get_post_thumbnail_id($post->ID), 'thumbnail' );
                        $url = $thumb['0'];
                    ?>
                        <div class="col-md-3 col-sm-6 col-xs-12">
                            <div class="feature-box">
                                <div class="column-item-category"><?php the_category(); ?></div>
                                <a class="feature-box-link" href="<?php the_permalink(); ?>">
                                    <?php the_post_thumbnail( '', array(
                                            'class' => 'column-circle'
                                        ) ); ?>
                                </a>
                                <a class="feature-box-link" href="<?php the_permalink(); ?>">
                                    <h4 class="column-item-title"><?php the_title(); ?></h4>
                                </a>
                                <p class="column-item-author"><?php the_author(); ?></p>
                            </div>
                        </div>
                        <?php $blogposts_item_number++; ?>
                        <?php if( $blogposts_item_number % 4 == 0 ) echo '<div class="clearfix visible-md-block visible-lg-block"></div>'; ?>
                        <?php if( $blogposts_item_number % 2 == 0 ) echo '<div class="clearfix visible-sm-block"></div>'; ?>
                        <?php if( $blogposts_item_number % 1 == 0 ) echo '<div class="clearfix visible-xs-block"></div>'; ?>
                    <?php endwhile; ?>
                    <?php wp_reset_postdata(); ?>
                    <div class="post-nav-links">
                        <div class="prev-post"><?php previous_posts_link(); ?></div>
                        <div class="next-post"><?php next_posts_link(); ?></div>
                    </div>
                    <?php else : ?>
                    <p><?php _e( 'Sorry, no posts matched your criteria.' ); ?></p>
                <?php endif; ?>
                <!-- Feature Box 2 -->
                <!-- Feature Box 3 -->
                <!-- Feature Box 4 -->
            </div>
            <!-- Row Ends -->
    </section>

Comme je l'ai dit - tout fonctionne bien. Sauf qu'aucun lien de pagination n'apparaît. J'écris ceci au risque d'être totalement embarrassé, car je suis plutôt convaincu qu'il me manque quelque chose de vraiment fondamental. Mais je me tire les cheveux en essayant de comprendre, et cela semble être le bon moment pour poser des questions ici. Quoi qu'il en soit ... toute aide est grandement appréciée.

1
JoshMB

j'ai édité votre code un peu. Et je pense que cela devrait fonctionner. Vous devez passer les paramètres à previous_posts_link et next_posts_link.

Alors essayez le code suivant

<section id="blogposts" class="content-block content-3-5 blogposts">
            <div class="row">
                <!-- Feature Box 1 -->
                <?php
                    $paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
                    $blogposts_args = array(
                        'post_type' => 'post',
                        'post_status' => 'publish',
                        'nopaging' => false,
                        'order' => 'DESC',
                        'orderby' => 'date',
                        'posts_per_page' => '12',
                        'paged' => $paged
                    )
                    ?>
                <?php $blogposts = new WP_Query( $blogposts_args ); ?>
                <?php if ( $blogposts->have_posts() ) : ?>
                    <?php $blogposts_item_number = 0; ?>
                    <?php while ( $blogposts->have_posts() ) : $blogposts->the_post(); ?>
                    <?php
                        $thumb = wp_get_attachment_image_src( get_post_thumbnail_id($post->ID), 'thumbnail' );
                        $url = $thumb['0'];
                    ?>
                        <div class="col-md-3 col-sm-6 col-xs-12">
                            <div class="feature-box">
                                <div class="column-item-category"><?php the_category(); ?></div>
                                <a class="feature-box-link" href="<?php the_permalink(); ?>">
                                    <?php the_post_thumbnail( '', array(
                                            'class' => 'column-circle'
                                        ) ); ?>
                                </a>
                                <a class="feature-box-link" href="<?php the_permalink(); ?>">
                                    <h4 class="column-item-title"><?php the_title(); ?></h4>
                                </a>
                                <p class="column-item-author"><?php the_author(); ?></p>
                            </div>
                        </div>
                        <?php $blogposts_item_number++; ?>
                        <?php if( $blogposts_item_number % 4 == 0 ) echo '<div class="clearfix visible-md-block visible-lg-block"></div>'; ?>
                        <?php if( $blogposts_item_number % 2 == 0 ) echo '<div class="clearfix visible-sm-block"></div>'; ?>
                        <?php if( $blogposts_item_number % 1 == 0 ) echo '<div class="clearfix visible-xs-block"></div>'; ?>
                    <?php endwhile; ?>
                    <?php wp_reset_postdata(); ?>
                    <div class="post-nav-links">
                        <div class="prev-post"><?php previous_posts_link('Newer', $blogposts->max_num_pages ); ?></div>
                        <div class="next-post"><?php next_posts_link('Older', $blogposts->max_num_pages ); ?></div>
                    </div>
                    <?php else : ?>
                    <p><?php _e( 'Sorry, no posts matched your criteria.' ); ?></p>
                <?php endif; ?>
                <!-- Feature Box 2 -->
                <!-- Feature Box 3 -->
                <!-- Feature Box 4 -->
            </div>
            <!-- Row Ends -->
    </section>
1
terminator