概要
query_posts 関数は、WordPress のループで取得する投稿をカスタマイズするためによく使用される関数です。特定の条件を指定して投稿情報をロードするために利用されることが多く、以下のような状況で役立ちます。
- 特定のカテゴリから投稿を取得する
- タグに基づいて投稿をフィルタリングする
- 投稿の種類を変更する (例:カスタム投稿タイプ)
- 特定の著者による投稿を表示する
- 特定の期間に公開された投稿を取得する
- 総スラッグに基づいて投稿を取得する
- 投稿のメタデータに基づくフィルタリング
- 投稿の人気度や評価に基づく表示
構文
query_posts( $args );
パラメータ
$args: 投稿を取得するためのクエリパラメータを含む配列。
戻り値
- この関数は、WP_Query オブジェクトの配列を返します。
関連する関数
使用可能なバージョン
query_posts 関数は、WordPress 2.0.0 以降で利用可能です。
コアファイルのパス
wp-includes/query.php
サンプルコード
サンプルコード 1: カテゴリからの投稿を取得
query_posts('category_name=news&posts_per_page=5');
while (have_posts()) : the_post();
the_title();
endwhile;
wp_reset_query();
このコードは、特定のカテゴリ「ニュース」から最新の5件の投稿を取得し、タイトルを表示します。
サンプルコード 2: 特定のタグによるフィルタリング
query_posts('tag=featured&posts_per_page=10');
while (have_posts()) : the_post();
the_excerpt();
endwhile;
wp_reset_query();
このコードでは、「フィーチャー」タグが付いた投稿から最新の10件を取得し、抜粋を表示します。
サンプルコード 3: カスタム投稿タイプの取得
query_posts('post_type=custom_type&posts_per_page=3');
while (have_posts()) : the_post();
the_content();
endwhile;
wp_reset_query();
このコードは、カスタム投稿タイプ「custom_type」から最新の3件の投稿を取得し、コンテンツを表示します。
サンプルコード 4: 特定著者の投稿を表示
query_posts('author=1&posts_per_page=5');
while (have_posts()) : the_post();
the_title();
endwhile;
wp_reset_query();
このコードは、著者ID 1の投稿から最新の5件を取得し、タイトルを表示します。
サンプルコード 5: 日付で絞り込み
query_posts('year=2023&monthnum=10&posts_per_page=5');
while (have_posts()) : the_post();
the_title();
endwhile;
wp_reset_query();
このコードでは、2023年10月に公開された最新の5件の投稿を取得し、タイトルを表示します。
この関数のアクションでの使用可能性
| アクション | 使用可能性 |
|---|---|
| mu_plugin_loaded | |
| registered_post_type | |
| plugins_loaded | |
| wp_roles_init | |
| setup_theme | |
| after_setup_theme | |
| set_current_user | |
| init | |
| register_sidebar | |
| wp_loaded | |
| send_headers | |
| parse_query | 〇 |
| pre_get_posts | 〇 |
| wp | 〇 |
| template_redirect | |
| get_header | |
| wp_head |
非推奨または削除されたバージョン
WordPress 3.1 以降では、query_posts 関数は非推奨とされ、強く使用が推奨されないため、代わりに WP_Query を使用することをお勧めします。