2016-09-14 4 views
0

私はによって特定のポートフォリオカテゴリを除外することを可能にするポートフォリオページのテーマを持っています。カテゴリは私がしたいと思います。ポートフォリオカテゴリを除外する方法

問題は、特定のポートフォリオ品目が複数のカテゴリに割り当てられており、カテゴリがチェックされていないにもかかわらず、チェックされているカテゴリに複数のカテゴリが割り当てられている場合、 。

これを修正するにはどうすればよいですか?私は私の関数ファイルにコードが見つかりましたが、私は確信していないと思います。

私は 'NOT IN'から 'IN'に演算子を変更しようとしましたが、これですべての項目が表示されます。どんな助けでも大歓迎です!

if (isset($cat) && $cat!=-1) { 
     //include a category 
     $query_args['tax_query'] = array(
      array(
       'taxonomy' => PEXETO_PORTFOLIO_TAXONOMY, 
       'field' => 'slug', 
       'terms' => $cat 
      ) 
     ); 
    } 
    if (!empty($excludeCats)) { 
     if (!isset($query_args['tax_query'])) { 
      $query_args['tax_query'] = array(); 
     } 
     //exclude categories 
     $query_args['tax_query'][]= array(
      'taxonomy' => PEXETO_PORTFOLIO_TAXONOMY, 
      'field' => 'id', 
      'terms' => $excludeCats, 
      'operator' => 'NOT IN' 
     ); 
    } 

答えて

0

私はこの問題がポートフォリオアーカイブで発生すると想定しています。 この場合、回避策として、すべての表示カテゴリを取得してtax_queryに追加することをお勧めします。

if(! empty($excludeCats)) { 
    $visibleCats = array_diff($allCats, $excludeCats); 
} 
if (!empty($excludeCats)) { 
    if (!isset($query_args['tax_query'])) { 
     $query_args['tax_query'] = array(); 
    } 
    //exclude categories 
    $query_args['tax_query'][]= array(
     'taxonomy' => PEXETO_PORTFOLIO_TAXONOMY, 
     'field' => 'id', 
     'terms' => $visibleCats, 
     'operator' => 'IN' 
    ); 
} 
+0

ありがとう、ありがとうございました。残念ながら、これは私にとって問題を解決するようには見えませんでした。私は問題が$ allCatsクエリにあると思います。なぜなら、このクエリは関数ファイルのどこにも現れないからです。あなたは他に何か提案がありませんか?ありがとう! – Sam

関連する問題