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

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

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

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

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

あとがき

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

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

Twitter で

コメントを残す

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