аргументы запроса wp добавление нескольких налоговых запросов


Я создаю пользовательскую поисковую систему, которая выполняет поиск по моим рецептам пользовательского типа сообщений, в поиске она ищет термины таксономии, которые выбрали люди.

Теперь из-за того, что он может жестко кодировать все это, мне нужно построить аргументы с помощью какого-то цикла.

Вот пример кода, если то, что у меня есть,

$args = array(
'post_type'      => get_post_type(),
'orderby'        => 'menu_order',
'order'          =>  'ASC',
'posts_per_page' => -1,
'no_found_rows'  => true,
'tax_query' => array(
    'relation' => 'AND',
    array(
        'taxonomy' => 'product_category',
        'field'    => 'slug',
        'terms'    => array($category->slug), //Supply the current product_category terms
    ),
    array(
        'taxonomy' => 'product_locations',
        'field'    => 'slug',
        'terms'    => array($current_location), //Add the product_locations term
        'operator' => 'IN',
    ),
),
);

Что мне нужно, так это добавить:

array(
        'taxonomy' => 'product_category',
        'field'    => 'slug',
        'terms'    => array($category->slug), //Supply the current product_category terms
    ),

Что мне нужно, так это добавить их программно, когда человек выбирает, я пытался построить массив args с петлями и добавлением строк вместе, но я не могу заставить это работать. У кого-нибудь есть какой-нибудь быстрый способ это сделать?

Author: Ryan Bowden, 2014-10-01

1 answers

Вы можете использовать условия IF для добавления параметров,

$args = array(
'post_type'      => get_post_type(),
'orderby'        => 'menu_order',
'order'          =>  'ASC',
'posts_per_page' => -1,
'no_found_rows'  => true,
'tax_query' => array(),
);

if(condition){
    $args['tax_query'] = array(
        'relation' => 'AND',
        array(
            'taxonomy' => 'product_category',
            'field'    => 'slug',
            'terms'    => array($category->slug), //Supply the current product_category terms
        ),
        array(
            'taxonomy' => 'product_locations',
            'field'    => 'slug',
            'terms'    => array($current_location), //Add the product_locations term
            'operator' => 'IN',
        ),
    ),
}
else{
     $args['tax_query'] = array(
        array(
            'taxonomy' => 'product_category',
            'field'    => 'slug',
            'terms'    => array($category->slug), //Supply the current product_category terms
        ),
     );
}
 0
Author: Domain, 2014-10-04 07:01:56