サポート » 使い方全般 » tax_queryで子カテゴリのみ除去したい

  • トップページに表示している最新のカスタムポストから、特定の子タームのみ非表示にしたいと思っています。

    カスタムタクソノミー
     野菜 id=1
      -葉野菜 id=2
     果物 id=3
     飲み物 id=4
     お菓子 id=5

    とすると、
     野菜・果物・飲み物・お菓子
    のポストは表示したいけれど、
     葉野菜
    のポストを表示したくありません。
    「葉野菜」のついたポストの中には「葉野菜」のみがついているものと「野菜」と「葉野菜」の両方がついたポストがあり、両方ついたポストは表示させたいです。

    現在のところ、以下のようなコードを入れていますが、「野菜」と「葉野菜」両方のついたポストは表示されません。
    'tax_query' => array( array('taxonomy' => 'info-cat', 'terms' => '2', 'operator' => 'NOT IN'))

    今後もタームが増えていくと思うので、ひとつひとつ個別に表示するタームを指定するのは避けたいです。

    何とかする方法があればご教授お願いいたします。

1件の返信を表示中 - 1 - 1件目 (全1件中)
  • 未確認です。

    $terms = get_terms('info-cat','parent=0');
    foreach($terms as $term) $term_id[] = $term->term_id;
    
    $args = array(
      'tax_query' => array(
        array(
          'taxonomy'         => 'info-cat',
          'field'		 => 'term_id',
          'terms'            => $term_id,
          'operator'         => 'IN',
          'include_children' => false
        )
      )
    );
    $my_post = get_posts( $args );

1件の返信を表示中 - 1 - 1件目 (全1件中)
  • トピック「tax_queryで子カテゴリのみ除去したい」には新たに返信することはできません。