固定ページに投稿一覧とページネーションを設置する、3分で

現在フリーのweb製作者として活動しているしょーご(@samuraibrass)です。

遠野さん
遠野さん
固定ページに!
田所くん
田所くん
投稿一覧を!
しょーご
しょーご
ページネーション付きで実装したいんだろ?よし行くよ!

固定ページで投稿、ページネーションするコード

<?php
 $paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
 $the_query = new WP_Query( array(
     'post_status' => 'publish',
     'paged' => $paged,
     'posts_per_page' => 5, // 表示件数
     'orderby'     => 'date',
     'order' => 'DESC'
 ) );
  
  
 if ($the_query->have_posts()) :?><?php
    while ($the_query->have_posts()) : $the_query->the_post();?>
//コンテンツ
<?php endwhile;?><?php endif; ?>
<!-- pagenation -->
<div class="pagenation">
<?php 
if ($the_query->max_num_pages > 1) {
    echo paginate_links(array(
        'base' => get_pagenum_link(1) . '%_%',
        'format' => 'page/%#%/',
        'current' => max(1, $paged),
        'mid_size' => 1,
        'total' => $the_query->max_num_pages
    ));
}
wp_reset_postdata();?>
</div><!-- /pagenation -->

固定ページはサブループで回す

foreachで回しても良いですが、ページネーションならこっちの方が都合がいいし、個人的にWP_Queryは使い勝手がよくて好きなので…

サブループ内のキーと値は、公式リファレンスを参考にお好みで。

https://wpdocs.osdn.jp/%E9%96%A2%E6%95%B0%E3%83%AA%E3%83%95%E3%82%A1%E3%83%AC%E3%83%B3%E3%82%B9/WP_Query
最新順に、5つ表示になってます。

ページネーション内処理

こちらのキーと値の設定は、下記のページが参考になります。
https://elearn.jp/wpman/function/paginate_links.html

実績一覧や商品一覧によく使う

記事一覧ページなんて、archive.phpやcategory.phpの仕事やろ!

とは言え、決まったカテゴリーの投稿を、決まったスラッグで運用するのなら、固定ページで投稿一覧を作った方が効率が良い場合があります。

特にグローバルナビゲーションなどメニューに載せたい場合などです。

スラッグも間に「category」などを挟まないため、

sample.com/works

のようにシンプルにできます(スラッグ指定されてる案件も多いので)。

独自レイアウトの固定ページで一覧ページを作るなら、例えば実績一覧ページなら

page-works.php

など、独自の固定ページを作成して上記コードを埋め込めば、独自レイアウトで投稿一覧をページャー付きで実装できます。