WordPressのページネーションについて教えてくださいm(__)m
プラグインを使わない方法で、ページネーションの実装について調べて試してみましたが、2ページ目移行が 404 になります。
下記のコードを function.php
に記載して、category.php
で読み込んでいますが、category.php
では問題なく動作します。
ただ、tag.php
で読み込みと最初のページはページネーションが表示されますが、2ページ目へ遷移すると 404 になります。
php
1/** 2 * ページネーション 3 */ 4function wp_pagination() { 5 global $wp_query; 6 $big = 99999999; 7 $page_format = paginate_links( array( 8 'base' => str_replace( $big, '%#%', esc_url( get_pagenum_link( $big ) ) ), 9 'format' => '?paged=%#%', 10 'current' => max( 1, get_query_var('paged') ), 11 'total' => $wp_query->max_num_pages, 12 'prev_next' => True, 13 'prev_text' => __('次へ'), 14 'next_text' => __('前へ'), 15 'type' => 'array' 16 ) ); 17 if( is_array($page_format) ) { 18 $paged = ( get_query_var('paged') == 0 ) ? 1 : get_query_var('paged'); 19 20 echo '<div>'; 21 22 if(strpos(reset($page_format),'次へ') !== false) { 23 echo '<div>' . reset($page_format) . '</div>'; 24 } 25 26 echo '<div>'. $paged . ' / ' . $wp_query->max_num_pages .'</div>'; 27 28 if(strpos(end($page_format),'前へ') !== false) { 29 echo '<div>' . end($page_format) . '</div>'; 30 } 31 32 echo '</div>'; 33 34 } 35 wp_reset_query(); 36}
カテゴリページの場合は、下記のように問題なくページネーションされます。
/カテゴリ名 /カテゴリ名/page/2 /カテゴリ名/page/3
タグの場合は、2ページ目になるとエラーになります。
/tag/タグ名 ←最初は表示される /tag/タグ名/page/2 ←404
パーマリンクをカスタム構造にしていたので、「日付と投稿名」の別のパーマリンクにしてみましたが、改善されません。
いろいろググりましたが、要因がさまざまあるようで、おそらく回答される方も原因を推測することが困難かと思います。
(推測できる原因を教えていただくのが一番有り難いですが、困難な場合は)
tag.php でページネーションを実装するのに参考になるサイトをご存知であれば教えてくださいm(__)m
追記
tag.php
は下記です。
php
1<?php get_header(); ?> 2 3 <?php if (have_posts()) : ?> 4 <?php while (have_posts()) : the_post(); ?> 5 6 <?php the_title(); ?> 7 8 <?php endwhile; ?> 9 10 <?php wp_pagination() ?> 11 12 <?php else : ?> 13 14 <p>投稿された記事はありません。</p> 15 16 <?php endif; ?> 17 18 <?php wp_reset_query(); ?> 19 20<?php get_footer(); ?>
回答1件
あなたの回答
tips
プレビュー