Yuriko.Net 個別記事

2008-08-06
晴れ

WP-PageNavi を使わずにナビゲーション表示 (改良版)

ゆりこ による 17:07:47 の投稿
カテゴリー: WordPressハック,更新履歴
タグ: ,

ナビゲーションのサンプル画像

先月下旬に、「WP-PageNavi を使わずにナビゲーション表示」というテクニックを公開しましたが、パーマリンクを使っていても検索などクエリー文字列を使う URL の場合 (http://example.com/?s=検索文字列 など)、不具合が起きることが分かりました。

そこで、全面的に変更したものに差し替えます (元記事も新しいコードに入れ換えてあります)。ここまで長くなると、関数化した上でテーマの functions.php に切り出して、index.php 等からはその関数を呼び出す方がいいですね。

<div class="tablenav"><?php global $wp_rewrite;
$paginate_base = get_pagenum_link(1);
if (strpos($paginate_base, '?') || ! $wp_rewrite->using_permalinks()) {
	$paginate_format = '';
	$paginate_base = add_query_arg('paged', '%#%');
} else {
	$paginate_format = (substr($paginate_base, -1 ,1) == '/' ? '' : '/') . 
	user_trailingslashit('page/%#%/', 'paged');;
	$paginate_base .= '%_%';
}
echo paginate_links( array(
	'base' => $paginate_base,
	'format' => $paginate_format,
	'total' => $wp_query->max_num_pages,
	'mid_size' => 5,
	'current' => ($paged ? $paged : 1),
)); ?></div>

トラックバック・コメント »

  1. ページナビゲーション機能を改版してみたり

    ゆりこさんとこで知った,ページナビゲーションの実装方法
    改版されていたんで,ちょろっと変えてみた

    function.phpに書き出したほうがいいかなぁ〜?
    ってことで,function.php対応版へ若…

    吟遊詩人の戯言からのトラックバック
  2. 突然失礼します。
    一つ質問があります。

    このナビゲーションなんですけど、トップ以外のリンクに「/page/(数字)/」がつきますけど、
    リンクの数字「1」へのリンク先だけ特定のページに設定することはできますか?
    それか、「1」のリンクにも「page/1/」と入るようにはできますか?

    いろいろやってみたんですが、よく理解していないもので、
    もし、できたらすごくうれしいです。

    よろしくお願いします。

    しげからのコメント
    • それか、「1」のリンクにも「page/1/」と入るようにはできますか?

      paginate_links() の結果をそのまま出力するならば無理ですね。$paged が 1 のときは page/1/ を付与するなどの追加処理が必要です。
      しかし、page/1/ という URL が必要な理由はなぜでしょう?? 冗長になってしまうため、意味がないように思いますが……。

      ゆりこからのコメント
  3. WP-PageNaviプラグインは?

    今まで使用していたWP-PageNaviプラグインですが、YurikoさんのところでWP-PageNavi を使わずにナビゲーション表示 (改良版)という記事がありましたので利用することにしました。プラグインの…

  4. [...] のことを記事にしようと思って検索してたら Yuriko.Net » WP-PageNavi を使わずにナビゲーション表示 (改良版)という記事を発見。プラグインを使うことなく WordPress [...]

  5. 初心者の質問ですみません。functions.phpに記述してindex.php で呼び出す場合のindex.php呼び出し方を教えていただけるとありがたいです。

    るなからのコメント
    • 初心者であれば、下手な小細工をするよりそのまま使ってください。「functions.phpに記述してindex.php で呼び出す」というのは PHP の知識が必要になりますが、それを細かく説明するのは、さすがに当記事の範疇外です。

  6. [...] 2つ目はコードを記述する方法です。 「Yuriko.Net」サイトの「WP-PageNavi を使わずにナビゲーション表示 (改良版)」をよく読んで、コードを自分のテーマに適切に設置します。 [...]

  7. [...] WP-PageNavi を使わずにナビゲーション表示 (改良版) [...]

  8. [...] WP-PageNavi を使わずにナビゲーション表示 (改良版) [...]

  9. […] WP-PageNavi を使わずにナビゲーション表示 (改良版) […]

上に戻る

※スパム対策プラグインの影響により、すぐにトラックバックが反映されない場合があります。お手数ですが、半日ほど待ってみてください。

コメント投稿

※発言の責任を明確にするため「名無し」「通りすがり」「匿名希望」等の匿名は不可とします。捨てハンドルでもいいので必ず名乗ってください。
XHTML (使えるタグ): <a href="" title="" ktai=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <img localsrc="" alt=""> .
※スパム対策プラグインの影響により、すぐにコメント内容が表示されない場合があります。お手数ですが、半日ほど待ってみてください。

上に戻る