2016-11-16 3 views
0

Я хочу получить все сообщения, указав несколько категорий из раскрывающегося списка. В pre_get_posts Я хочу изменить запрос к поиску по выбранным категориям (более одного).Получить все сообщения по нескольким категориям

$taxquery = ($taxquery, array(
      'taxonomy' => 'cat', 
      'field' => 'id', 
      'terms' => array('1','2'), 
      'operator'=> 'IN' 
      ));   
$query->set('tax_query', $taxquery); 

Но когда я выполняю этот код, не из сообщений показаны (я уверен, что есть сообщения по меньшей мере в одном из того, что две категорий) Может быть, есть лучший способ для поиска по более чем одной категории используя OR при поиске по первым, вторым ... категория. Любые направления были бы замечательными!

ответ

0

После нескольких часов отладки я, наконец, нашел решение ...

Был несколько ошибок, как: Идентификаторы должны быть Целые в терминах массива, taxonomy должны быть 'category' не 'cat', в моем случае соотношение должно быть или как я хочу, чтобы выполнить поиск по нескольким категориям и по другим настраиваемого поля, и по крайней мере одна категория должна быть встретиться ...

Вот пример из код:

$taxquery = array(
       'relation' => 'OR', 
       'post_type' => 'post', 
       'tax_query' => array(
        'taxonomy' => 'category', 
        'field' => 'id', 
        'terms' => array(1,2,3), 
        'operator'=> 'IN' 
       )); 
     $query->set('tax_query', $taxquery); 
0

Сначала вы должны использовать term_id, а не id, а затем вы должны добавить дополнительные array в ваш tax_query, потому что у вас их более одного. Так что ваш код будет выглядеть следующим образом:

$category_ids = array(1,2); 
$query->set('category__in', $category_ids); 
+0

все тот же, нет результатов ... вы уверены, что это правильный способ? – raBne

+0

Ждите, что 'cat' является пользовательской таксономией или категорией Wordpress по умолчанию? –

+0

Категория по умолчанию – raBne

Смежные вопросы