it-swarm.com.de

Paginierung mit 5 Beiträgen pro Seite

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

BEARBEITEN

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?

3
user1486133

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