2016-11-16 33 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

調試後幾個小時,我終於找到了解決辦法...

有幾次失誤爲:IDS需要在條款的整數數組,taxonomy需求是'category''cat',在我的情況的關係必須是OR,因爲我想通過多個類別和其他自定義字段搜索,以及至少一個類別需要被滿足......

這裏是例子的代碼:

$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

等待是'貓'是一個自定義分類或默認的WordPress的類別? –

+0

默認類別 – raBne

相關問題