web-dev-qa-db-fra.com

Pagination avec 5 posts par page

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 );
            }

MODIFIER

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?

3
user1486133

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();
4
jgraup