WordPressのアーカイブページにて、現在ページ数と全ページ数を取得し、ページ送りにページ数を表示する方法をご紹介いたします。最終的に以下のようなページ送りを実装できます。
WordPressのアーカイブページで現在ページ数と全ページ数を取得してページ送りに表示する方法
まず、適用しているテーマのfunctions.phpに以下を追加します。
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | 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等のページ送りを表示したい箇所に以下を記述します。
1 | <?php custom_posts_pagination(); ?> |
上記コードを記述した場所に、現在ページと全ページのページ数が入ったページ送りが表示されます。
あとがき
ページ送りをカスタマイズしたい場合は、ぜひ参考にしていただければと思います。