Расширенная Логика Запросов С Несколькими Таксономиями


У меня на сайте есть страница, которая служит инструментом поиска/страницей результатов поиска для пользователей, чтобы найти арендуемые помещения. Слева находится столбец с флажками, которые позволяют пользователю фильтровать результаты по трем отдельным пользовательским таксономиям (space-types, space-features, space-areas) в правой части страницы перечислены результаты после отправки формы с флажком.

Я пытаюсь правильно запросить пробелы (пользовательский тип записи space-listings) на основе выбранных терминов в каждой таксономии, но логика кажется, это невозможно, и я не знаю, как еще это сделать.

Это необходимая логика: Если в списке пространств есть ЛЮБОЙ из space-types и ВСЕ space-features, которые выбрал пользователь, И есть ЛЮБОЙ из space-areas, которые они выбрали.

Вот самое близкое, что я получил с моим массивом запросов:

$searchspace = array (
'post_type'=>'space_listing',
'posts_per_page'=> 3,
'paged' => $paged,
'tax_query'=> array (
    'relation' => 'AND',
    array (
        'taxonomy' => 'space-types',
        'field' => 'slug',
        'terms' => $searchedtypes, //Array of selected types
                    'operator' => 'IN'//default
        ),
    array (
        'taxonomy' => 'space-features',
        'field' => 'slug',
        'terms' => $searchedfeatures, //Array of selected features
                    'operator' => 'AND'
        ),
            array (
                    'taxonomy' => 'space-areas',
        'field' => 'slug',
        'terms' => $searchedareas, //Array of selected areas
                    'operator' => 'IN'//default
        ),
    )

);
Author: Eckstein, 2014-04-07

1 answers

См. Параметры таксономии в Кодексе.

Первые области, вероятно, также должны быть в вашем tax_query.

Второе - вам, вероятно, нужно использовать аргумент operator в запросах (внутренних). Я не уверен, не проверяя это, но AND похоже, что это будет для более строгих соответствий, чем по умолчанию IN для вашей обязательной логики типов/функций.

 2
Author: Rarst, 2014-04-07 17:50:41