WordPressでのページング(ページネーション)の2つの方法
WordPressのテーマにページングを実装する方法を解説します。有名なページングプラグイン「WP-PageNavi」を利用しての方法と、プラグインを使わずに簡単な記述で実装する方法を紹介しています。
どちらも、非常に簡単にWordPressを使ったWEBサイトにページングを実装することができます。ご自身の好みでどちらを使うか検討してみてください。
プラグイン「WP-PageNavi」を利用する方法
ページングといえば「WP-PageNavi」というほど有名なプラグイン。設定方法は、プラグインを有効化したら「設定」→「Page Navi」から行います。下記が実際の設定画面です。
設定画面は日本語表記な上に、非常に簡易ですので初心者の方でも簡単にできます。自身のサイトに合わせて設定項目を変更していきます。
設定が完了したら、テンプレート上でページングを表示させたい場所に以下を記載すれば完了です。
<?php wp_pagenavi(); ?>
プラグインを使わないでページングを実装する方法
ページングはプラグインを使わないでも以下のソースを指定するファイルに設定していくことで可能です。
function.php
function pagination($pages = '', $range = 4) { $showitems = ($range * 2)+1; global $paged; if(empty($paged)) $paged = 1; if($pages == '') { global $wp_query; $pages = $wp_query->max_num_pages; if(!$pages) { $pages = 1; } } if(1 != $pages) { echo "<div class="pagination"><span>Page ".$paged." of ".$pages."</span>"; if($paged > 2 && $paged > $range+1 && $showitems < $pages) echo "<a href='".get_pagenum_link(1)."'>« First</a>"; if($paged > 1 && $showitems < $pages) echo "<a href='".get_pagenum_link($paged - 1)."'>‹ Previous</a>"; for ($i=1; $i <= $pages; $i++) { if (1 != $pages &&( !($i >= $paged+$range+1 || $i <= $paged-$range-1) || $pages <= $showitems )) { echo ($paged == $i)? "<span class="current">".$i."</span>":"<a href='".get_pagenum_link($i)."' class="inactive">".$i."</a>"; } } if ($paged < $pages && $showitems < $pages) echo "<a href="".get_pagenum_link($paged + 1)."">Next ›</a>"; if ($paged < $pages-1 && $paged+$range-1 < $pages && $showitems < $pages) echo "<a href='".get_pagenum_link($pages)."'>Last »</a>"; echo "</div>n"; } }
CSS設定
.pagination { clear:both; padding:20px 0; position:relative; font-size:11px; line-height:13px; } .pagination span, .pagination a { display:block; float:left; margin: 2px 2px 2px 0; padding:6px 9px 5px 9px; text-decoration:none; width:auto; color:#fff; background: #555; } .pagination a:hover{ color:#fff; background: #3279BB; } .pagination .current{ padding:6px 9px 5px 9px; background: #3279BB; color:#fff; }
表示場所に以下を記載
<?php if (function_exists("pagination")) { pagination($additional_loop->max_num_pages); } ?>
以上をコピーペーストすれば、簡単にページングを実装できます。複数サイトを運用するためプラグインをインストールしたくない方におすすめです。なお、CSS等はご自身のサイトに合わせて変更してください。