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

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

[読了時間の目安:約 2 分]

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

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

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

<?php query_posts($query_string); ?>

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

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

参考サイト

Comments:1

mineno 13-01-18 (金) 12:02

wp_reset_query();
でカスタムループのクエリをリセットできますよ.

Comment Form
Remember personal info

Trackbacks:4

Trackback URL for this entry
http://blog.btmup.com/wordpress/query_posts-clear.html/trackback
Listed below are links to weblogs that reference
query_posts() で指定した条件をクリアする方法 from btmup Blog
pingback from query_posts() を設定すると「WP-PageNavi」プラグインが正常に動作しなくなる件の解決法 | btmup Blog 09-10-07 (水) 21:13

[...] 。 (以前の記事でも紹介してます) [...]

pingback from 《Wp》指定のカテゴリー記事だけ表示する « BrainEgg 10-01-27 (水) 15:47

[...] 参考:query_posts() で指定した条件をクリアする方法 [...]

pingback from query_posts()の初期化 | ドロップシッパーのWordpress 10-05-15 (土) 0:11

[...] 参考サイトquery_posts() で指定した条件をクリアする方法 | btmup Blog [...]

pingback from WordPressのquery_postsでハマった場合の解決法(2パターン) | 作業メモ 10-10-22 (金) 23:12

[...] るとちゃんとis_homeがtrueになります。そこでなんとかクエリを元に戻す方法はないかと調べてみると”query_posts() で指定した条件をクリアする方法”こちらで解決法が書かれていました。 [...]

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

リンク
フィード
メタ情報

このページのトップへ