web-dev-qa-db-ja.com

配列内のすべての用語に一致する税クエリを作成する方法

製品フィルタを作成していますが、このクエリを正しく機能させる方法を見つけようとしています。このクエリに一連の用語(woocommerce製品属性)を入力できるようにする必要があります。また、 all 個の用語が含まれている製品を返すようにする必要があります。

これまでのところ、それはいずれかの用語を持つ製品を返すようです。任意の提案は大歓迎です。

これが私がこれまでに持ってきた議論です:

 $selectedOptions = array('test-attribute', 'test3');

 $args=array(
  'post_type' => 'product',
  'post_status' => 'publish',
  'posts_per_page' => -1,
  'tax_query'           => array(
        array(
            'taxonomy'      => 'pa_filterable-attribute',
            'terms'         => $selectedOptions,
            'field'         => 'slug',
            'operator'      => 'IN'
        )
    )
);

それが重要であればそしてここに私のループです:

$my_query = null;   
$my_query = new WP_Query($args);
if( $my_query->have_posts() ) { 
    woocommerce_product_loop_start();
    woocommerce_product_subcategories();
     while ($my_query->have_posts()) : $my_query->the_post(); ?>
        <?php wc_get_template_part( 'content', 'product' ); ?>
  <?php endwhile; 
  woocommerce_product_loop_end();
  }
  wp_reset_query();
1
TripsLeft

下記のようにあなたの演算子を 'AND'に変えることはうまくいくと信じています:

$selectedOptions = array('test-attribute', 'test3');

$args=array(
  'post_type' => 'product',
  'post_status' => 'publish',
  'posts_per_page' => -1,
  'tax_query'           => array(
        array(
            'taxonomy'      => 'pa_filterable-attribute',
            'terms'         => $selectedOptions,
            'field'         => 'slug',
            'operator'      => 'AND'
        )
    )
);
1
Fencer04