wp_query()


WordPressのwp_query()は、カスタムクエリを作成して投稿やページを取得するための柔軟な方法を提供します。

構文

$wp_query = new WP_Query( array $args );

引数の説明:

  • $args (array) — クエリの条件を設定するための配列。
  • 'post_type' (string|array) — 取得する投稿の種類。
  • 'posts_per_page' (int) — 1ページあたりの投稿数。
  • 'orderby' (string) — 投稿の並び替え基準。
  • 'order' (string) — 並び替えの順序。’ASC’または’DESC’。

例1: 投稿タイプ「post」を取得

指定した投稿タイプの投稿を取得します。

$wp_query = new WP_Query( array( 'post_type' => 'post', 'posts_per_page' => 5 ) );
if ( $wp_query->have_posts() ) {
    while ( $wp_query->have_posts() ) {
        $wp_query->the_post();
        the_title();
    }
}
wp_reset_postdata();

例2: 並び替えと制限

最新の5件の投稿を取得し、投稿日で降順に並べます。

$wp_query = new WP_Query( array( 'orderby' => 'date', 'order' => 'DESC', 'posts_per_page' => 5 ) );

例3: 特定のカテゴリから投稿を取得

カテゴリIDを指定して投稿を絞り込みます。

$wp_query = new WP_Query( array( 'cat' => get_cat_ID( 'ニュース' ) ) );

例4: カスタムフィールドでフィルタリング

カスタムフィールドの値が特定の条件を満たす投稿を取得します。

$wp_query = new WP_Query( array( 'meta_key' => 'イベント日', 'meta_value' => '2024-01-01', 'meta_compare' => '>=' ) );

例5: 複数条件を組み合わせて検索

投稿タイプ「product」の中から特定のタグとカテゴリを持つ投稿を取得します。

$wp_query = new WP_Query( array(
    'post_type' => 'product',
    'tag' => 'セール',
    'category_name' => 'おすすめ'
) );

注意事項

  • wp_reset_postdata()を使用してグローバルなクエリをリセットすることを忘れないでください。
  • カスタムクエリを使用するときは、パフォーマンスに影響を与えないように慎重に設計してください。

関連機能: