Navigation

WP_Query を使って複数の検索条件(meta_query / tax_query)で投稿を取得する方法

📅 7月 7, 2025
👤
1 min read

概要

WordPressのテーマやプラグインを開発する際に、複数の検索条件を使って投稿を取得する必要があります。WP_Queryを使って、meta_queryやtax_queryを組み合わせて複雑な検索を行う方法を解説します。

サンプルコード


$args = array(
    'post_type' => 'post',
    'posts_per_page' => 10,
    'meta_query' => array(
        array(
            'key' => 'custom_key',
            'value' => 'custom_value',
            'compare' => '='
        )
    ),
    'tax_query' => array(
        array(
            'taxonomy' => 'category',
            'field' => 'term_id',
            'terms' => array(1, 2),
            'operator' => 'IN'
        )
    )
);

$query = new WP_Query($args);
if($query->have_posts()) {
    while($query->have_posts()) {
        $query->the_post();
        // 投稿の表示処理
    }
}
wp_reset_postdata();

解説

  • `post_type` は取得する投稿タイプを指定します。
  • `posts_per_page` は1ページあたりに表示する投稿数を設定します。
  • `meta_query` はカスタムフィールドの条件を指定します。この例ではカスタムキーが `custom_key` で値が `custom_value` の投稿を取得します。
  • `tax_query` はタクソノミー(カテゴリーやタグ)の条件を指定します。この例ではカテゴリーIDが 1 または 2 の投稿を取得します。

ベストプラクティス

  • 検索条件が複雑になる場合は、`relation` パラメータを使用して条件を組み合わせることができます。
  • パフォーマンスを考慮して、必要な項目だけを取得するようにクエリを最適化しましょう。
  • セキュリティ上のリスクを避けるため、入力値のサニタイズとエスケープを適切に行いましょう。
← Back to WordPress