
カテゴリーぺージにページネーションを入れるのは簡単ですが、固定ページに入れるのはちょっと面倒。
入れることはあまりないけども、案件によっては入れる必要があるかもしれません。
そんな時に役立つよ。
page.php関係のページに書く
page.phpもしくはpage-スラッグ.phpに書き込みます。
page.phpに書くことはほとんどないと思いますので、ページスラッグを打ち間違えないでください。
page-スラッグ.php
<div class="page_news"> <div class="news_lines"> <?php $paged = (get_query_var('paged')) ? get_query_var('paged') : 1; $the_query = new WP_Query(array( 'post_status' => 'publish', 'post_type' => 'post', 'paged' => $paged, 'posts_per_page' => 3, 'orderby' => 'date', 'order' => 'DESC' )); if ($the_query->have_posts()) : while ($the_query->have_posts()) : $the_query->the_post(); ?> <a href="<?php the_permalink(); ?>" class="btn_ro"> <div class="news_timeline"> <p class="time"><?php the_time('Y.m.d'); ?></p> <?php $category = get_the_category(); $cat_name = $category[0]->cat_name; ?> <p class="cate"><?php echo $cat_name; ?></p> </div> <div class="news_ttl"><?php the_title(); ?></div> </a> <?php endwhile; else: echo '<div><p>ありません。</p></div>'; endif; ?> </div> </div> <div class="pagination"> <div class="pgw"> <div class="pnavi"> <?php // ページリスト表示処理 global $wp_rewrite; $paginate_base = get_pagenum_link(1); if(strpos($paginate_base, '?') || !$wp_rewrite->using_permalinks()){ $paginate_format = ''; $paginate_base = add_query_arg('paged','%#%'); }else{ $paginate_format = (substr($paginate_base,-1,1) == '/' ? '' : '/') . user_trailingslashit('page/%#%/','paged'); $paginate_base .= '%_%'; } echo paginate_links(array( 'base' => $paginate_base, 'format' => $paginate_format, 'total' => $the_query->max_num_pages, 'end_size' => 1, 'mid_size' => 1, 'current' => ($paged ? $paged : 1), 'prev_text' => '←', 'next_text' => '→', )); ?> </div> </div> </div>
まとめ
pagedを入れたり、pagenationのphpも結構めんどいです。
- 固定ページに入れないようになるように、クライアントを対案や説得を頑張りしましょう!