WordPressのアーカイブページ(投稿一覧)で現在ページ数と全ページ数を取得してページ送りに表示する方法

WordPressのアーカイブページ(投稿一覧)で現在ページ数と全ページ数を取得してページ送りに表示する方法

WordPressのアーカイブページ(投稿一覧)で現在ページ数と全ページ数を取得してページ送りに表示する方法

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(); ?>

上記コードを記述した場所に、現在ページと全ページのページ数が入ったページ送りが表示されます。

あとがき

ページ送りをカスタマイズしたい場合は、ぜひ参考にしていただければと思います。

この記事が気に入ったら
いいね!してね♪

Twitter で

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です