概要
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` パラメータを使用して条件を組み合わせることができます。
- パフォーマンスを考慮して、必要な項目だけを取得するようにクエリを最適化しましょう。
- セキュリティ上のリスクを避けるため、入力値のサニタイズとエスケープを適切に行いましょう。