ホーム > タグ > query_posts

query_posts

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

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

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

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

query_posts() で指定した条件をクリアする方法

データベースからコンテンツを取得するときに、その条件などを指定する「query_posts()」。
非常に便利、というか「使わないとやってられん」的な超定番関数です。

この query_posts()、一度指定した条件はその後のループでも引き継がれます。
それはそれで使いやすいときもあるのですが、「異なるカテゴリーの記事一覧を同一ページに表示」なんてときには逆に困ってしまいます。
ループごとに別の条件を指定しても上書きはしてくれないようで、最悪の場合、表示すらしてくれません。
(例えば、メインコンテンツ部分に新しくループを入れて query_posts() で条件を指定したら、その前まで表示できていたサイドバーのリストが消えてしまったりします ← 体験談)

そこで、ループごとに新しく条件を指定できるように、前のループで指定した条件をクリアする必要があります。
その方法は意外と単純で、以下の一文を追加するだけ。

<?php query_posts($query_string); ?>

この一文を、クリアしたいループの後、もしくは次のループの前(要するにループとループの間のどこか)に記述することで、query_posts() の条件をクリアすることができます。

$query_string」とは、ページごとの標準の条件が入った変数ですので、クリアというより「デフォルトに戻す」という表現の方が正確かも知れません。

参考サイト

1 / 11

Home > Tags > query_posts

リンク
フィード
メタ情報

このページのトップへ