WordPress таксономический запрос с условием и и или
У меня есть тип поста продукта, и у меня есть product_cat - таксономия. В product_cat у меня есть красная, жесткая, мягкая ручка.
Таким образом, я должен получить продукты, подпадающие под красный, и это становится твердым или мягким
Как я могу получить это?
Для продукта, который подпадает под красный и жесткий и мягкий, я могу использовать следующий запрос
$args = array(
'post_status' => 'publish',
'posts_per_page' => -1,
'tax_query' => array(
'relation' => 'AND',
array(
'taxonomy' => 'product_cat',
'field' => 'slug',
'terms' => 'red'
),
array(
'taxonomy' => 'product_cat',
'field' => 'slug',
'terms' => 'hard'
),
array(
'taxonomy' => 'product_cat',
'field' => 'slug',
'terms' => 'soft'
)
),
'post_type' => 'product',
'orderby' => 'title',
);
Но то, что мне нужно, это красный, должен и в мягкой или жесткой. т.е. (red && (soft||hard ))
Пожалуйста помоги.
1 ответ
Решение
Вы можете попробовать так:
'tax_query' => array(
'relation' => 'AND',
array(
'taxonomy' => 'product_cat',
'field' => 'slug',
'terms' => array( 'red' ),
),
array(
'relation' => 'OR',
array(
'taxonomy' => 'product_cat',
'field' => 'slug',
'terms' => array( 'hard' ),
),
array(
'taxonomy' => 'product_cat',
'field' => 'slug',
'terms' => array( 'soft' ),
),
),
),
Не проверено, но оно должно работать!
Если нет, вот несколько полезных ссылок:
https://codex.wordpress.org/Class_Reference/WP_Query
https://10up.com/blog/2013/wordpress-mixed-relationship-taxonomy-queries/