WordPressのアーカイブページにて、現在ページ数と全ページ数を取得し、ページ送りにページ数を表示する方法をご紹介いたします。最終的に以下のようなページ送りを実装できます。
WordPressのアーカイブページで現在ページ数と全ページ数を取得してページ送りに表示する方法
まず、適用しているテーマのfunctions.phpに以下を追加します。
if ( !function_exists( 'custom_posts_pagination' ) ) { function custom_posts_pagination() { global $wp_query; $big = 99999999; $page_format = paginate_links( array( 'base' => str_replace( $big, '%#%', esc_url( get_pagenum_link( $big ) ) ), 'format' => '?paged=%#%', 'current' => max( 1, get_query_var('paged') ), 'total' => $wp_query->max_num_pages, 'mid_size' => 0, 'type' => 'array' ) ); if( is_array($page_format) ) { $paged = ( get_query_var('paged') == 0 ) ? 1 : get_query_var('paged'); echo '<div class="pagenation">'; if(!($paged == 1)){ echo '<a href="'.get_pagenum_link($paged-1).'">←</a>'; } else { echo '←'; } echo '<span>'. $paged . 'ページ / 全' . $wp_query->max_num_pages .'ページ</span>'; if(!($paged == $wp_query->max_num_pages)){ echo '<a href="'.get_pagenum_link($paged+1).'">→</a>'; } else { echo '→'; } echo '</div>'; } wp_reset_query(); } }
ページ送りをカスタマイズするためのコードです。「if( is_array($page_format) )」の中身が出力部分なので、出力内容を変えたい場合はこの部分を変更してください。
続いて、archive.php等のページ送りを表示したい箇所に以下を記述します。
<?php custom_posts_pagination(); ?>
上記コードを記述した場所に、現在ページと全ページのページ数が入ったページ送りが表示されます。
あとがき
ページ送りをカスタマイズしたい場合は、ぜひ参考にしていただければと思います。