btmup Blog

Web 制作のことを中心に、ちょっとした Tips などを掲載しています。「自分用メモ」が基本スタンス。

WordPress

query_posts() を設定すると「WP-PageNavi」プラグインが正常に動作しなくなる件の解決法

投稿日:

アーカイブページが複数に分割されているとき、WordPress 標準の機能だけでは「次のページへ»」とか「«Prev」と表示するくらいしかできません。
しかし、「WP-PageNavi」を使うと、総ページ数を表示してくれたり、順番だけではなく(ある程度)任意のページに直接アクセスできたりするナビゲーションを表示してくれます。
導入や使い方も非常に簡単で、日本語ファイルも公開されており、ものすごく便利なプラグインなのです。

(ここで「WP-PageNavi」の解説はしませんが、ググったらたくさん情報がありますのでそちらを参照ください)

さて、そんな超便利プラグイン「WP-PageNavi」ですが、「query_posts()」と併用しているとき正常に動作しないという事態にハマってしまったので、解決法と共に書き記しておこうと思います。

起こった問題

query_posts() は、コンテンツのデータをデータベースから取得する際の条件を設定するための関数です。

例えば


<?php query_posts('cat_ID=2'); ?>

とすると、「カテゴリーの ID が 2 の記事を取得しなさい」という意味になり、この後に記事を一覧表示するようなタグがあれば、ID が 2 のカテゴリーに属する記事一覧が表示されます。

ただ、上記のように、指定したい内容だけをただ設定した場合、WP-PageNavi が正常に動作しません。
現在のページがおかしかったり、そもそも一覧表示すべき記事がうまく表示しなかったりします(何ページになっても、ずっと 1 ページ目のまま変わらなかったり)。
原因の詳細は不明ですが、query_posts() によってデータを取得する条件が変化したことで、WP-PageNavi が動作する際の条件(全体の記事数とか現在のページとか)にも影響が及んだのだと思います。恐らく。たぶん。

解決法

で、どうすれば解決するかといえば、query_posts() の設定を下記のようにちょっと修正すれば大丈夫のようなのです。


<?php query_posts($query_string . '&' . 'cat_ID=2'); ?>

追加されたのは「$query_string . ‘&’ . 」の部分。
「$query_string」は、「ページごとに用意された標準の条件」を追加できる変数です。
以前の記事でも紹介してます)

つまり、「ページごとに用意された標準の条件」をひとまず設定した上で、設定したい内容だけ上書きする、ということですね。
どうやらこの「標準の条件」が抜けているがために、WP-PageNavi が正常に動作しなくなってしまったようです。

状況証拠ばかりで、具体的な処理内容は一切分かりませんが。

こちら↓の本に query_posts() の書式などが詳しく載っているので(P.50 あたり)、ご興味のある方はどうぞ。

なんかレビューの点数低いなぁ……(1 件だけやけど……)。
対応バージョンが 2.6 なので情報の古さは否めませんが、よく整理されていて使いやすいと思うんですけどねぇ。







-WordPress
-, , ,

執筆者:


  1. ともりえみこ より:

    ありがとうございます。wp ver2.9でしたが、同じ現象が解決しました。助かりました。

  2. […] 参考:query_posts() を設定すると「WP-PageNavi」プラグインが正常に動作しなくなる件の解決法 ? btmup Blog [ボトムアップ ブログ] […]

  3. […] query_posts() を設定すると「WP-PageNavi」プラグインが正常に動作しなくなる件の解決法 関連記事 […]

  4. […] query_posts() を設定すると「WP-PageNavi」プラグインが正常に動作しなくなる件の解決法 | btmup Blog 諦めないで…!WordPressでページ送りがうまく行かない時の3つの対処法+究極奥義 | ウェビメ […]

  5. […] query_posts() を設定すると「WP-PageNavi」プラグインが正常に動作しなくなる件の解決法 | btmup Blog 諦めないで…!WordPressでページ送りがうまく行かない時の3つの対処法+究極奥義 | ウェビメ […]

  6. […] 参考:query_posts() を設定すると「WP-PageNavi」プラグインが正常に動作しなくなる件の解決法 […]

  7. […] 勝手にリンク貼ってしまいます。 「諦めないで…!WordPressでページ送りがうまく行かない時の3つの対処法+究極奥義」とか、「query_posts() を設定すると「WP-PageNavi」プラグインが正常に動作しなくなる…などなど。。。。今となっては、他のどんなサイトを見たのか、あせっていたりするので、もう覚えていません(^_^;) […]

comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

no image

WPプラグイン「Flutter」を導入するとHTMLタグを使った投稿ができなくなる。

投稿画面をカスタマイズできる「Flutter」というプラグインを試験的に導入して、不要な項目を削除したりカスタムフィールドを設定したりいて「超便利!」と喜んでいたのですが……。 どうやらこのプラグイン …

no image

「Vitroperlo[ヴィトロペルロ]」というサイトを制作しました。

書こうかどうか迷ったんですが、やっぱり書いときます。 最近、ちょっと人に頼まれて Web サイトを制作しました。 »Vitroperlo[ヴィトロペルロ] 仕事ではなく、個人事業です。 事 …

no image

WordPress 2.9 リリース! 画像編集や動画埋め込みが簡単に!

去る12月19日、WordPress 2.9 がリリースされました(されてました)。 2.8.6 へのアップデートもまだだというのに。 もっとやきもきさせるのかと思いきや、意外とあっさり出たような気が …

no image

WordPressテーマを適用してみた。

初めは自作のテーマをイチから作ろうかと思ったのですが、そういえば世間にはテーマを配布しているサイトもあったよなぁ、と思い直してとりあえずダウンロードしてみました。 きっかけ 元々はこの「webデザイナ …

no image

WordPress 2.6 で画像を挿入したら横幅が自動的に500pxになってしまう問題の解決方法。

ググればすぐ見つかるんですけど、一応メモ。 WordPress 2.6.5 の環境でアップロードした画像を投稿記事に挿入したところ、なぜか横幅の最大値が 500px になってしまうということがありまし …