query_posts()を使う時の注意点
query_posts()は特定の情報を取得できる便利な関数ですが注意点があります。
query_posts()で取得した場合ページidやカテゴリーid等の情報を拾ってくれないので、現在のページのidなどを必要とする処理には$query_stringを入れて情報を取得しなくてはいけません。
wp_query オブジェクトは与えられた引数から新しい SQL クエリを作ります。このとき、WordPress は(ページ番号やカテゴリーのような)URL から得られた引数を無視します。もしその情報が必要なら、query_posts() の引数としてグローバル変数の $query_string を与えます。 codex-テンプレートタグ/query posts
以前query_posts()を使ってトップページでの表示の記事を限定カテゴリーのみにした所、ページを送っても古いページを取得できないという事があったのですが、その時は引数に paged=$paged を追加して対応しました。-特定のカテゴリーの記事を非表示にする
このような場合にもっと簡単な方法がありました。
query_posts()に $query_string 関数を指定すればよいです。
<?php query_posts( $query_string . "cat=7&posts_per_page=10" ); ?>
↑これで $query_string で開いてるページidを取得して、カテゴリーid7のページを10件表示します。
$query_string はページごとの標準の条件を取得できる関数です。
No Comments & Tracbacks