サイトロゴ

【WordPress】Bootstrap5でWordPressのページネーションの実装方法

プログラミング

2022年04月05日 2022年04月05日

WordPressにてBootStrap(v5.0)に対応したページネーションの実装に関して解説します。これは当サイトのページネーションの実装にも用いられているため、実装した際の挙動の確認もしやすいと思います。基本コピペで使えますが、各パラメータの調整はコメントアウトを参考に各自設定してください。

functions.php

  1. <?php
  2. //Pagenation
  3. function pagination($pages = '', $range = 2)
  4. {
  5.     $showitems = ($range * 2)+1;//表示するページ数(5ページを表示)
  6.     global $paged;//現在のページ値
  7.     if (empty($paged)) {
  8.         $paged = 1;
  9.     }//デフォルトのページ
  10.     if ($pages == '') {
  11.         global $wp_query;
  12.         $pages = $wp_query->max_num_pages;//全ページ数を取得
  13.          if (!$pages) {//全ページ数が空の場合は、1とする
  14.              $pages = 1;
  15.          }
  16.     }
  17.     if (1 != $pages) {//全ページが1でない場合はページネーションを表示する
  18.         echo "<ul class='pagination'>\n";
  19.         //Prev:現在のページ値が1より大きい場合は表示
  20.         if ($paged > 1) {
  21.             echo "<li class=\"page-item\"><a href='".get_pagenum_link($paged - 1)."' class='page-link'>前へ</a></li>\n";
  22.         }
  23.         for ($i=1; $i <= $pages; $i++) {
  24.             if (1 != $pages &&(!($i >= $paged+$range+1 || $i <= $paged-$range-1) || $pages <= $showitems)) {
  25.                 //三項演算子での条件分岐
  26.                 echo ($paged == $i)? "<li class=\"page-item active\"><a href='".get_pagenum_link($i)."' class='page-link'>".$i."</a></li>\n":"<li><a href='".get_pagenum_link($i)."' class='page-link'>".$i."</a></li>\n";
  27.             }
  28.         }
  29.         //Next:総ページ数より現在のページ値が小さい場合は表示
  30.         if ($paged < $pages) {
  31.             echo "<li class=\"page-item\"><a href=\"".get_pagenum_link($paged + 1)."\" class='page-link'>次へ</a></li>\n";
  32.         }
  33.         echo "</ul>\n";
  34.     }
  35. }
  36. ?>

ページネーション出力

  1. <?php
  2. //Pagenation
  3.  if (function_exists("pagination")) {
  4.     pagination($additional_loop->max_num_pages);
  5. }
  6. ?>

検索
ミニプロフィール
...

teslasand0987

自称エンジニア兼マルチクリエイターです。
WEBサイトの制作やVRChatのコンテンツ制作、アプリ制作・動画制作まで色々やっています。

マイクラのサーバ構築(AWS)やVRChatのワールド・ギミック製作依頼、ホームページ製作依頼(静的なサイト)、動画制作等を承っております。 気軽にお問い合わせください。

カテゴリー

タグ
月別アーカイブ

最新の投稿