WP ページネーション WP-PageNaviと自作

WP-PageNaviプラグイン

1.WP-PageNaviプラグインをインストール

2.ページネーションの設定

設定-> PageNavi

3.設定したい箇所に下記を記述

<?php if(function_exists('wp_pagenavi')) { wp_pagenavi(); } ?>
WP_Queryを使う場合
$paged = ( get_query_var('paged') ) ? get_query_var('paged') : 1;
$args = array(
          'paged'=> $paged,
          ...
)
$the_query = new WP_Query( $args );

WP_Queryで設定したい箇所に下記を記述

<?php if(function_exists('wp_pagenavi')) { wp_pagenavi(array('query' => $the_query)); } ?>

自作の場合

1.テンプレートファイル作成

例:c-pagination.php

<?php
/**
 * ページャー
 */
if (!defined('ABSPATH')) exit;

// 【注意】最大ページ数 $total_page は読み込むページ側でセット
$total_page = $wp_query->max_num_pages;
$paged = get_query_var('paged') ? get_query_var('paged') : 1;

$args = array(
  "paged"     => $paged,
  "post_type" => "post",
  "orderby"   => "date",
  "order"     => "DESC"
);

$page_links = paginate_links(array(
  'format'    => '?page=%#%',
  'total'     => $total_page,
  'current'   => $paged,
  'mid_size'  => 4, // 現在のページの両脇に表示するページ数
  'prev_text' => '前へ',
  'next_text' => '次へ',
  'type'      => 'array'
));

// 2ページ以上の場合に表示
if ($total_page > 1) {
  echo '<div class="p-information__pagination">
    <ul class="page-numbers">';
  foreach ($page_links as $link) {
    if (strpos($link, 'prev') !== false) {
      echo '<li class="prev">';
    } else if (strpos($link, 'next') !== false) {
      echo '<li class="next">';
    } else {
      echo '<li>';
    }
    echo $link;
    echo '</li>';
  }

  echo '</ul></div>';
}

2.ページネーションを読み込みたい箇所で読み込み

        $args = array(
          'posts_per_page' => '6',
          'post_type' => 'cases__summary',
          'post_status' => 'publish',
          'orderby' => 'post_date',
          'order' => 'DESC',
          'paged' => get_query_var('page'), //★
        );
        $wp_query = new WP_Query($args);

        if ($wp_query->have_posts()) : while ($wp_query->have_posts()) : $wp_query->the_post();
        ?>

            <li class="list-item"><a class="item-content trans" href="<?php the_permalink(); ?>">
                <h2 class="item-title"><?php the_title(); ?></h2>
                <p class="item-text"><?php the_field('voice_text2'); ?></p>
                <p class="item-author"><?php the_field('voice_text2_1'); ?> 様</p>
              </a></li>

          <?php endwhile; ?>
        <?php else : ?>
        <?php endif; ?>

        <?php
        get_template_part('partials/c-pagination'); ?>//★