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(); ?>
上記コードを記述した場所に、現在ページと全ページのページ数が入ったページ送りが表示されます。
あとがき
ページ送りをカスタマイズしたい場合は、ぜひ参考にしていただければと思います。

