0
製品リストにフィルタを適用しようとしています。ユーザーはフロントエンドで選択ボックスを使用し、ボタンをクリックして製品をフィルタリングします。(Wordpress)メタクエリが存在する場合のみ適用する方法
すべての製品は独自の投稿ですので、私は投稿を取得するためにWP_Queryを使用します。たとえば、色が「赤」、素材が「プラスチック」、ブランドが「Bikon」のすべての製品が必要です。だから私は使う。
$color = "red";
$material = "plastic";
$brand = "Bikon";
$query = new WP_Query(array(
'post_type' => 'products',
'posts_per_page' => 6,
'post_status' => 'publish',
'meta_query' => array(
'relation' => 'AND',
array(
'key' => 'color',
'value' => $color,
'compare' => '='
),
array(
'key' => 'material',
'value' => $material,
'compare' => '='
),
array(
'key' => 'brand',
'value' => $brand,
'compare' => '='
)
)
));
これは、すべての値が設定されると正常に動作します。しかし、選択ボックスの1つだけが使用されている場合、他の2つの値は空になり、クエリは投稿を返しません。 "この値が設定されている場合にのみ、この配列をメタクエリで使用する"と言う方法はありますか?
が存在する場合、私はそれが理由コードのこの部分のため、または何か他のもののためですかどうかわからないんだけど、私はこの方法を使用する場合、追加のフィルタを追加することができますコードがクエリにスタックされます。 – Joris508
奇妙な、私にとってそれはうまく動作し、この方法を数回使用しました。あなたはコードの完全なビューのスクリーンショットを共有できますか? –
元のクエリでmeta_queryを指定している可能性があります。 フィルタリングが存在する場合にのみ追加してください - http://prntscr.com/e1is9a –