Проблема с запросом Woocommerce по метам и атрибутам

#php #wordpress #woocommerce

Вопрос:

У меня есть 3 продукта, имеющих мета-ключ 'check_key' = 1 . 2 из них имеют атрибут 'pa_size_10_20' со значениями » 100 » и «30»; у другого есть атрибут 'pa_size_30_40' со значением «70».

Пожалуйста, помогите мне понять, почему приведенный ниже запрос возвращает все 3 продукта? Я ожидаю только 2 продукта с атрибутом ‘pa_size_10_20’.

 $args = array(
    'post_type'   => 'product',
    'visibility'  => 'visible',
    'post_status' => 'publish',
    'numberposts' => -1,
    'meta_query'  => array(
        array(
            'key'     => 'check_key',
            'value'   => '1',
            'compare' => '='
        )
    ),
   'tax_query'    => array( 
        array(
            'taxonomy'=> 'pa_size_10_20',
            'field'   => 'name',
            'terms'   => 0,
            'operator' => '!='
        )
    )
);
$posts = get_posts( $args );
 

ТИА

Ответ №1:

Похоже, что вы tax_query бы вернули все термины таксономии, которые не называются 0 целым числом?

Я думаю, что если бы вы знали значения IN , то я бы использовал их вместо этого.

 $args = array(
    'post_type'   => 'product',
    'visibility'  => 'visible',
    'post_status' => 'publish',
    'posts_per_page' => -1,
    'meta_query'  => array(
        array(
            'key'     => 'check_key',
            'value'   => '1',
            'compare' => '='
        ),
    ),
    'tax_query'    => array(
        array(
            'taxonomy'=> 'pa_size_10_20',
            'field'   => 'name',
            'terms'   => array('100', '300'),
            'operator' => 'IN'
        ),
    ),
);
 

Комментарии:

1. Дело не в графе. Дело в том, что запрос для tazonomy ‘pa_size_10_20’ возвращает также запись в таксономии ‘pa_size_30_40’

2. Все, что не равно нулю