私は記事のページ区切り付きリストを作成しようとしていて、Codexを使ってコードを書いていますが、私は何か悪いことをしているようです。
これらは私の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
)
);
$paged
の内容は、期待される1
として出力されます。
if
ステートメントにnext_posts_link
を追加しましたが、表示されません。
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 );
}
これが表示されているページはフロントページではなく、私が作成した静的ページです。私はpage-news.php
テンプレートを作成してから、「News」というページを作成し、それがこのコードが存在する場所にあることを確認しました。それが理由でしょうか。
これは私にとってテンプレートを使用して単一のページで機能しています。必ず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();