| マルチサイト化したWordPressのサーバ移転手順ブログトップ | CMS関連 | PHP関連 | MP4(H.264)の動画でクロスブラウザ
WordPressでページネイション
この記事は1年以上前の記事のため、内容が古い可能性があります。
このプログラムは、コリスさんのサイトにある「WordPressにプラグイン無しでページネーションを設置する方法」を少し改造したものです。
function custom_pagination($pages = '', $range = 2){ $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="page_navi">'; if($paged > 1){ echo '<a href="'.get_pagenum_link(1).'">«</a>'; echo '<a href="'.get_pagenum_link($paged - 1).'">‹</a>'; }else{ echo '<span class="current">«</span>'; echo '<span class="current">‹</span>'; } for ($i=1; $i <= $pages; $i++){ //1~3ページまでの設定 if($paged <= $range){ if($paged == $i){ echo '<span class="current">'.$i.'</span>'; }elseif($i <= $showitems){ echo '<a href="'.get_pagenum_link($i).'" class="inactive">'.$i.'</a>'; } } //最後から2つ前~最後までの設定 elseif($paged >= ($pages-1)){ if($paged == $i){ echo '<span class="current">'.$i.'</span>'; }elseif(($pages - $showitems) < $i){ echo '<a href="'.get_pagenum_link($i).'" class="inactive">'.$i.'</a>'; } } //その他 else{ 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){ echo '<a href="'.get_pagenum_link($paged + 1).'">›</a>'; echo '<a href="'.get_pagenum_link($pages).'">»</a>'; }else{ echo '<span class="current">›</span>'; echo '<span class="current">»</span>'; } echo '</div>'; } }
改造箇所
もともと利用させていただいたプログラムでは、5ページ分のナビゲーションを出すつもりでも、1~2ページ目までは5ページ分のナビゲーションが出ず、3ページ目になって、ようやく5ページ分のナビゲーションが出るという仕組みでした。(下図参照)
1ページ目のナビゲーション
2ページ目のナビゲーション
3ページ目のナビゲーション
4ページ目のナビゲーション
これでも特に問題はないのですが、できれば3ページ目以降のように、ナビゲーション数は常に一定数を保ちたいと思い、常に5ページ分のナビゲーションが出るように改造しました。(当然ですが5ページ分のナビゲーションが出るのは5ページ分の投稿数がある場合です。2、3、4ページ分しか投稿数が無い場合は2、3、4ページ分のナビゲーションしか出ません。)
なお、ページのナビゲーション数を増やしたい場合は第2引数のrangeに表示したい数の「半分-1」の数値を入れてください。(5ページなら2、7ページなら3、9ページなら4といった感じ。)
トラックバック
トラックバックURL
トラックバック一覧
[...] これでプラグイン無しでページネーションが実装できました。 この方法に関してはたくさんの記事がありますので良かったら調べてみてください! WordPressにプラグイン無しでページネーションを設置する方法 | コリス WordPress プラグインなしでシンプルなページネーションを実装 | 福島県郡山市のホームページ制作、Web制作 Kyasper Web Design キャスパーウェブデザイン WordPressでページネイション | ダリの雑記:WEBプログラム版 [...]
コメントする
※メールアドレスが公開されることはありません。