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'); ?>//★