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 はページごとの標準の条件を取得できる関数です。

Related Article

No Comments & Tracbacks

Leave a Comment

Emailは公開されません。*は必須項目です。


*


Categorys

Tags

CSS3 ダッシュボード ヘッダー トラブル コードサンプル スライドショー コンテンツ jQueryプラグイン 素材 引っ越し php お知らせ Facebook JavaScript CSS カテゴリー IE 投稿タイプ seo Photoshop Shareボタン HTML5 レスポンシブ サイドバー ナビゲーション タクソノミー WPセキュリティ Git カスタムメニュー Macアプリ PHPリファレンス SVG query_posts API WP使い方 iTunes データベース コメント function RSS 条件分岐 get_posts() スマートフォン Sass/Compass マルチサイト機能