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

时间:2018-09-12 13:27:52

标签: loops woocommerce notin

我不知道我是否正确解释了这个问题,但是我遇到了一个循环,该循环正在拉回分配给特定类别的所有产品(在这种情况下,本季是针对表演艺术组织的)。

但是出于各种原因,每个产品实际上都被分配到多个类别,在这种情况下,我希望所有产品都分配到“当前季节”,但是也分配到了“系列”类别。

我尝试了以下操作,但是它并没有改变我的查询显示。

它仍然显示分配给“当前季节”的所有内容。

$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”!

谢谢!

1 个答案:

答案 0 :(得分:1)

如果您想按日期排序帖子,我相信'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,则将其排除在外