Привет! Допиливаю фильтр товаров по атрибутам. После выбора первого атрибута в форме, нужно получить список товаров с этим атрибутом. Но запрос выдает пустой результат, когда добавляю
tax_query. Код находится в
functions.php
$newquery = new WP_Query( array(
'post_type' => 'product',
'posts_per_page' => '22',
'post_status' => 'publish',
'tax_query' => array( array(
'taxonomy' => 'pa_chrisi', // Product attribute taxonomy: always start with 'pa_'
'field' => 'term_id', // Can be 'term_id', 'slug' or 'name'
'terms' => 170,
), ),
) );
Я проверял БД по таксономии
pa_chrisi. Я пробовал
- сделать init woocommerce (правда не совсем понял зачем) перед моим кодом.
- добавлял в запрос
'suppress_filters' => true, и
'include_children' => false,
echo $newquery->request; выводит:
SELECT SQL_CALC_FOUND_ROWS dmg0j_posts.ID FROM dmg0j_posts WHERE 1=1 AND ( 0 = 1 ) AND dmg0j_posts.post_type = 'product' AND ((dmg0j_posts.post_status = 'publish')) GROUP BY dmg0j_posts.ID ORDER BY dmg0j_posts.post_date DESC LIMIT 0, 22
Если удалить tax_query то все работает, выводятся все продукты.
Может как-то обойти проблему? В целом логика: в форме 3 select-a выбираем первый атрибут - во втором выводим только те варианты атрибута, которые есть у товаров содержащих 1ый атрибут. Если эту проверку не проводить а давать выбрать во всех трех select-ах любой атрибут то в 90% случаев поиск ничего не даст и человек уйдет.
Помогите коллеги! Первый раз пишу)) Обычно гуглю все сам. Голову сломал, спать не могу, есть не могу!