Woocommerce получить петлю категории, исключить другую категорию - PullRequest
0 голосов
/ 12 сентября 2018

Я не знаю, правильно ли я объясняю это, но у меня есть цикл, который вытягивает все товары, отнесенные к определенной категории (в данном случае, Текущий сезон - это для организации исполнительских искусств).

Но каждый продукт фактически назначается нескольким категориям по разным причинам, и в этом случае я хочу, чтобы все продукты были отнесены к «текущему сезону», но НЕ также был присвоен категории «серия».

Я попробовал следующее, но он ничего не изменил для отображения моего запроса.

Он по-прежнему показывает все, что назначено текущему сезону.

$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 голосов
/ 12 сентября 2018

Я считаю, что ваша проблема с '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();

Ссылка

Я проверил этот запрос локально, и он отображает весь продукт с категорией current-season, и если один продукт в этой категории назначен другой категории или подгруппе-категория series исключено

...