Woocommerce 获取类别循环,排除另一个类别

Woocommerce get category loop, exclude another category

我不知道我解释的是否正确,但我有一个循环将所有产品分配到特定类别(在本例中,当前季节 - 这是针对表演艺术组织的)。

但是由于各种原因每个产品实际上被分配到多个类别,在这种情况下我希望所有产品都分配到'current-season',但是NOT也分配到类别 'series'。

我尝试了以下方法,但它没有改变我的查询显示。

它仍然显示分配给 'current-season' 的所有内容。

$args_right = array(
    'post_type' => 'product',
    'posts_per_page' => 999,
    //'product_cat' => 'current-season',
    'tax_query' => array(
        array(
            'taxonomy' => 'product_cat',
            'field' => 'slug',
            'terms' => 'series',
            'operator' => 'NOT IN'
        ),
        array(
            'taxonomy' => 'product_cat',
            'field' => 'slug',
            'terms' => 'current-season',
            'operator' => 'IN'
        )
    ),
    'meta_key' => 'date',
    'orderby' => 'meta_value_num',
    'order' => 'ASC'
);

我确定我只是漏掉了一些非常明显的东西。我用头撞墙,然后结束 "D'UH"!!

提前致谢!

我相信你的 'meta_key' => 'date' 有问题,如果你想按日期排序帖子,你可以使用以下查询。

$args_right =  array(
    'post_type' => 'product',
    'posts_per_page' => 12,
    'orderby' => 'date',
    'order' => 'ASC',
    'tax_query' => array(
        array(
            'taxonomy' => 'product_cat',
            'terms' => array('current-season'),
            'field' => 'slug',
            'operator' => 'IN' // Possible values are 'IN', 'NOT IN', 'AND'.
        ), array(
            'taxonomy' => 'product_cat',
            'terms' => array('series'),
            'field' => 'slug',
            'operator' => 'NOT IN' // Possible values are 'IN', 'NOT IN', 'AND'.
        )
        ),

);


$loop = new WP_Query($args_right);
if ($loop->have_posts()) {
    while ($loop->have_posts()) :
        $loop->the_post();
        wc_get_template_part('content', 'product');
    endwhile;
} else {
    echo __('No products found');
}
wp_reset_postdata();

Reference

我在本地测试了这个查询,它显示了 current-season 类别的所有产品,如果该类别中的一个产品被分配给另一个类别或子类别 series 它被排除在外