カスタム投稿アーカイブで2ページ目以降が1ページ目と同じ一覧になってしまう
-
【カスタム投稿アーカイブ:archive-news.php】
<?php $paged = get_query_var('paged') ?: 1; $args = array( 'posts_per_page' => 2, 'post_type' => 'news', 'orderby' => 'date', 'order' => 'DESC' // 昇順 ); $the_query = new WP_Query( $args ); if($the_query->have_posts()): while($the_query->have_posts()): $the_query->the_post(); ?> /* 投稿の表示 */ <?php endwhile; ?> <?php endif; ?> <?php if ( function_exists( 'pagination' ) ) : pagination( $the_query->max_num_pages, $paged ); endif; wp_reset_postdata(); ?> 【functions.php】 /** * ページネーション出力関数 * $paged : 現在のページ * $pages : 全ページ数 * $range : 左右に何ページ表示するか * $show_only : 1ページしかない時に表示するかどうか */ function pagination( $pages, $paged, $range = 4, $show_only = false ) { $pages = ( int ) $pages; //float型で渡ってくるので明示的に int型 へ $paged = $paged ?: 1; //get_query_var('paged')をそのまま投げても大丈夫なように //表示テキスト $text_first = "<<"; $text_before = "< 前へ"; $text_next = "次ページ >"; $text_last = ">>"; if ( $show_only && $pages === 1 ) { // 1ページのみで表示設定が true の時 echo '<nav class="pagination"><span class="current pager">1</span></nav>'; return; } if ( $pages === 1 ) return; // 1ページのみで表示設定もない場合 if ( 1 !== $pages ) { //2ページ以上の時 echo '<nav class="pagination"><ul class="page-numbers">'; if ( $paged < $pages ) { // 「次へ」 の表示 echo '<li><a href="', get_pagenum_link( $paged + 1 ) ,'">', $text_next ,'</a></li>'; } if ( $paged > 1 ) { // 「前へ」 の表示 echo '<li><a href="', get_pagenum_link( $paged - 1 ) ,'">', $text_before ,'</a></li>'; } for ( $i = 1; $i <= $pages; $i++ ) { if ( $i <= $paged + $range && $i >= $paged - $range ) { // $paged +- $range 以内であればページ番号を出力 if ( $paged === $i ) { echo '<li><span aria-current="page" class="page-numbers current">', $i ,'</span></li>'; } else { echo '<li><a href="', get_pagenum_link( $i ) ,'">', $i ,'</a></li>'; } } } if ( $paged + $range < $pages ) { // 「最後へ」 の表示 echo '<li><a href="', get_pagenum_link( $pages ) ,'"><span>', $text_last ,'</span></a></li>'; } if ( $paged > $range + 1 ) { // 「最初へ」 の表示 echo '<li><a href="', get_pagenum_link(1) ,'">', $text_first ,'</a></li>'; } echo '</ul></nav>'; } }
この様な記述でカスタム投稿にページネーションを実装しようとしているですが、2ページ目以降が1ページ目と同じ内容になってしまいます。
いまは1ページに2記事ずつ表示しているのですが、2ページの内容は1ページ目と同じですがtitleは2つ目の記事(1ページ目の2つ目の記事)。3ページ目の内容は1ページ目と同じでtitleは3つ目の記事(本来2ページ目の1つ目の記事)となっています。
どこかコードが間違っていると思うので、アドバイスお願いします。
1件の返信を表示中 - 1 - 1件目 (全1件中)
1件の返信を表示中 - 1 - 1件目 (全1件中)
- トピック「カスタム投稿アーカイブで2ページ目以降が1ページ目と同じ一覧になってしまう」には新たに返信することはできません。