Savchenko]</sup>−<tt>query_posts()</tt>はWordPressが投稿を表示するのに使用しているメインクエリーを置き換える手段です。これはメインクエリーを一旦横に置いておき、新しいクエリーで上書きします。<tt>query_posts</tt>を呼び出したあとは、クエリーの改変を戻すために、<tt>wp_reset_query()</tt>を呼び出し、オリジナルのメインクエリーを復活させる必要があります。WordPressが投稿を表示するのに使用しているメインクエリーを置き換える手段です。これはメインクエリーを一旦横に置いておき、新しいクエリーで上書きします。呼び出し、オリジナルのメインクエリーを復活させる必要があります。−<tt>query_posts</tt>を使うことによって、ページ上のメインクエリーが置き換えられ、ページの読み込み速度に影響を与えることに留意してください。最悪の場合、倍かそれ以上の処理が発生します。簡単に使える代わりに、この関数は混乱と問題を引き起こす傾向があります。下記の注意をご覧ください。使うことによって、ページ上のメインクエリーが置き換えられ、ページの読み込み速度に影響を与えることに留意してください。最悪の場合、倍かそれ以上の処理が発生します。簡単に使える代わりに、この関数は混乱と問題を引き起こす傾向があります。下記の注意をご覧ください。−一般的な投稿の取得には、[[関数リファレンス/WP_Query|WP_Query]]か、[[テンプレートタグ/get_posts|get_posts]]を使ってください。チェックしてメインクエリーを変更することが'''強く'''推奨されています。使ってメインクエリーであるかチェックする。メインクエリーの場合のみ、それを変更する。−たとえば、ホームで、通常最新の10件の投稿が表示されているとします。5件だけ表示したいのであれば、<tt>query_posts()</tt>を使ってこのように書くことができます(ページ送りについては無視しています)。+たとえば、ホームで、ふつうは最新の10件の投稿が表示されるでしょう。);</pre>−functions.phpで[[プラグイン_API/アクションフック一覧/pre_get_posts|pre_get_posts]]を使って同じことをするなら、このように書けます。39行目:</pre></pre>−'''注意:'''pre_get_postsアクションは[[Pages|固定ページ]]のリクエストでは動作しません。アクションは[[Pages|固定ページ]]のリクエストでは動作しません。==</div></div>−<tt>query_posts()</tt>はデータベースに問い合わせて投稿の一覧を生成するための、数ある方法のひとつに過ぎません。<tt>query_posts()</tt>を使うと決める前に、欠点も理解しておいてください。データベースに問い合わせて投稿の一覧を生成するための、数ある方法のひとつに過ぎません。使うと決める前に、欠点も理解しておいてください。===</div></div>−<tt>query_posts()</tt>はメインループを変更するためのものです。<tt>query_posts()</tt>はそのために、メインループを生成するクエリーを置き換えます。<tt>query_posts()</tt>を使うと、投稿にもとづいたグローバル変数やテンプレートタグも変更されます。<tt>query_posts()</tt>を呼び出したあとは、条件分岐タグも置き換えられてしまいます。このことが意図しない結果を引き起こすかもしれません。メインループを変更するためのものです。そのために、メインループを生成するクエリーを置き換えます。使うと、投稿にもとづいたグローバル変数やテンプレートタグも変更されます。呼び出したあとは、条件分岐タグも置き換えられてしまいます。このことが意図しない結果を引き起こすかもしれません。表示したい場合は、[[関数リファレンス/WP_Query|WP_Query]]の新しいインスタンスを生成するか、[[テンプレートタグ/get_posts|get_posts()]]を使ってください。−もし<tt>query_posts()</tt>を使う場合は、用が済んだら必ず<tt>wp_reset_query()</tt>を呼び出してください。parameter"を参照してください。クエリー引数を適切に指定していないと、ページ送りが正しく動作しない可能性があります。パラメーターを追加]]」を参照してください。(なぜなら、どのテンプレートが読み込まれるかが決まったということは、すでに処理が終わっているということですから!)。そのため、<tt>query_posts()</tt>を使ってデフォルトのクエリーを上書きして結果を得るには、どうしても再度データベースに問い合わせし再計算する必要があります。データベースへの問い合わせを実行し、データの取り出しを終えています(どのテンプレートを読み込むかが決まったということは、すでに処理が終わっているということですから!)。使ってデフォルトのクエリーを上書きして結果を得るには、どうしても再度データベースに問い合わせし再計算する必要があります。−このことは、小規模なブログベースのウェブサイトを扱っているのであれば、必ずしも問題であるとは言えません。データベースが大きい大規模でトラフィックの多いウェブサイトの開発者であれば、デフォルトのクエリーが呼び出される前に直接変更するなどの代替案を検討するほうがいいかもしれません。[[プラグイン_API/アクションフック一覧/request|request]]フィルターでまさにこれを実現できるでしょう。+このことは、小規模なブログベースのウェブサイトを扱っているのであれば、必ずしも問題であるとは言えません。データベースが大きい大規模でトラフィックの多いウェブサイトの開発者であれば、デフォルトのクエリーが呼び出される前に直接変更するなどの代替案を検討するほうがいいかもしれません。フィルターでまさにこれを実現できるでしょう。オブジェクトを改変しデータベースへ問い合わせるSQLを生成するのに使われます。フィルターも利用できます。表示される投稿を変更するために使います。投稿のみを表示)を受け取ります。得られたクエリを変更することはトラブルの元になります。一切変えることなく投稿の見せ方をカスタマイズすることができます。固定ページを指定することもできます)。指定した期間の投稿すべてを表示する。フロントページに最新の投稿(だけ)を表示する。投稿の表示順序を変更する。特定のカテゴリーに含まれる投稿だけを表示する。1つまたは複数のカテゴリーに含まれる投稿を除く。ループ''だけ''を変更するためのものです。新たなループを作るためのものではありません。使用すると、メインループが不正な状態になり期待する結果が得られません。関数はページのメインクエリを上書きし、置き換えます。他の目的で使用しないでください。オブジェクトを作成します。呼び出しを記述します。経由で受け取った他のパラメータを無視します(ページ番号やカテゴリーなど)。始まる前に記述します。得られた引数を無視します。クラスのパラメータの説明]]をご覧ください。オブジェクトに対しても利用できます。使う場合は、二重引用符で囲んだ引数をアンド記号(&)で始めてください。複数の値の引数を追加する場合、配列にする必要があります。);+−</pre>+−+−さらに、元のクエリ配列を引数配列に統合することもできます。パラメータで通常の表示件数を指定できます。オブジェクトでも使えるものですが、もちろんこれが全てではありません。パラメーターを組み合わせることで、より実用的なクエリが可能になります。パラメーターの詳細は[[関数リファレンス/WP_Query#Parameters|こちら]]を参照してください。オブジェクトでも使えるものですが、もちろんこれが全てではありません。パラメーターを組み合わせることで、より実用的なクエリが可能になります。パラメーターの詳細は[[関数リファレンス/WP_Query#Parameters|こちら]]を参照してください。以下のカスタムフィールドを持つ投稿を表示。注:値は数値ではなく文字列として扱われているため「99」は「100」より大きくなります。以下のカスタムフィールドを持つ投稿を表示。注:値は数値ではなく文字列として扱われているため「99」は「100」より大きくなります。===</div></div>−特定の投稿を表示。+特定の投稿を表示するには次にコードが使えます。653行目:</pre></pre>−'''注:'''特定の投稿が「添付」の場合、''p''の代わりに''attachment_id''を用います。設定する「1ページに表示する最大投稿数」のパラメーターが適用されます。パラメーターを設定します。以下が例です:+管理画面の「設定」>「表示設定」で設定する「1ページに表示する最大投稿数」のパラメーターが適用されます。パラメーターを設定します。709行目:−しかし、サブカテゴリーまたは子カテゴリーでは「カテゴリー名」が常に使えるとは限らないため、「カテゴリースラッグ」を用いる方が良いとされます。+しかし、サブカテゴリーまたは子カテゴリーでは「カテゴリー名」が常に使えるとは限りません(別のサブカテゴリーまたは子カテゴリーと重複する場合がある)。そこで「カテゴリースラッグ」を用いる方が良いでしょう。パラメーターを上書きします。パラメーターを上書きします。変数を与える方法をいくつか紹介します。変数を与える方法をいくつか紹介します。実行する前にクエリ文字列を連結します。変数に値を代入し、次に変数と文字列を結合して、実行します。変数で与えることにします。実行する前にクエリ文字列を連結します。変数に値を代入し、次に変数と文字列を結合して、実行します。変数で与えることにします。公開日が現在の年・月に該当する投稿を表示します。投稿の並び順は日付の昇順で、公開日の古い順に表示します。公開日が現在の年・月に該当する投稿を表示します。投稿の並び順は日付の昇順で、公開日の古い順に表示します。====</div></div>この例では、ページネーションを使ってすべての投稿を表示する場合を説明します。すべての投稿を表示させることができます。各ページに表示したい投稿の数を指定します。ページを移動する手段を提供しましょう。この例では、ページネーションを使ってすべての投稿を表示する場合を説明します。すべての投稿を表示させることができます。各ページに表示したい投稿の数を指定します。ページを移動する手段を提供しましょう。変数を使わずに、引数を配列に入れる方法もあります。変数を使わずに、引数を配列に入れる方法もあります。複雑な条件を与えるときはこの方がすっきりして読みやすいでしょう。4で示した配列を複数のタクソノミーに入れることも可能です。これは単純にタクソノミーのスラッグをコンマで分割した文字列として代入するだけです。この例では、植木等''または''高倉健が出演している映画の投稿を全て抽出します。4で示した配列形式を使って、複数のタクソノミーを問い合わせることもできます。これは単純に、タクソノミーのスラッグに対してコンマ区切りの文字列を渡すだけです(文字列ひとつがタームひとつに相当)。'movie')の投稿を全て抽出します。1.5|1.5.0]]から導入されました。