プラグイン不要のページャーの作成(function.phpへの記述編)
2020-04-30
前回は、category.phpやarchive.phpに記述して、ページャーを出力する方法を記載しましたが、今回は、function.phpへ記述して、category.phpやarchive.phpへ呼び出し関数を記述して、出力する方法を記載します。
まず、function.phpへの記述していきます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
// Pagenation function pagination($pages = '', $range = 2){ $showitems = ($range * 2)+1; //表示するページ数(5ページを表示) global $paged;//現在のページ値 if(empty($paged)) $paged = 1; //デフォルトのページ if($pages == ''){ global $wp_query; $pages = $wp_query->max_num_pages;//全ページ数を取得 if(!$pages){ //全ページ数が空の場合は、1とする $pages = 1; } } if(1 != $pages){ //全ページが1でない場合はページネーションを表示する echo "<ul>\n"; //Prev:現在のページ値が1より大きい場合は表示 if($paged > 1){ echo "<li class=\"prev\"><a href='".get_pagenum_link($paged - 1)."'>Prev</a></li>\n"; } for ($i=1; $i <= $pages; $i++){ if (1 != $pages &&( !($i >= $paged+$range+1 || $i <= $paged-$range-1) || $pages <= $showitems )){ //三項演算子での条件分岐 echo ($paged == $i)? "<li class=\"active\">".$i."</li>\n":"<li><a href='".get_pagenum_link($i)."'>".$i."</a></li>\n"; } } //Next:総ページ数より現在のページ値が小さい場合は表示 if ($paged < $pages){ echo "<li class=\"next\"><a href=\"".get_pagenum_link($paged + 1)."\">Next</a></li>\n"; } echo "</ul>\n"; } } |
次に出力したい箇所へ下記を記述します。
1 2 3 4 5 |
<?php if (function_exists('pagination')) { pagination( $additional_loop -> max_num_pages ); } ?> |
出力された内容は、下記のようになります。
1 2 3 4 5 6 7 |
<ul> <li class="active">1</li> <li><a href="ページリンク">2</a></li> <li><a href="ページリンク">3</a></li> <li><a href="ページリンク">4</a></li> <li class="next"><a href="ページリンク">Next</a></li> </ul> |
funtion.php内で<ul>〜</ul>が出力するようにしていますが、<div>などに変更しても良いと思います。