WordPressのカスタム投稿で、カスタムタクソノミーの特定のタームを対象から除外する方法についてご紹介します。
ターム一覧から特定のタームを除外
まずは、カスタムタクソノミーのターム一覧から、特定のタームを除外する方法から。
PHP
$args = array( 'exclude' => array(16), //除外したいタームのIDを指定。 ); $terms = get_terms('news_cat', $args); foreach ( $terms as $term ) { echo '<li><a href="'.get_term_link($term).'">'.$term->name.'</a></li>'; }
ターム一覧の出力方法についてはこちらの記事で紹介しています。
excludeパラメータ
get_terms()
関数の第二引数に入れる配列に、exclude
パラメータの指定をしてあげるだけです。
exclude
パラメータには除外したいタームのIDを指定します。
カンマで区切ることで、複数のタームIDを指定することも可能です。
$args = array( 'exclude' => array(16), //除外したいタームのIDを指定。 );
タームIDの調べ方
WordPressのデバッグ関数であるvar_dump()
を使用すると、タームIDを調べることができます。
get_terms()
関数で取得したタームの情報をvar_dump()
で調べます。
$terms = get_terms('news_cat', $args); var_dump($terms);
すると、以下のような配列が出力され、term_id
の値を発見できます。
記事一覧から、特定のタームの記事を除外
次は、カスタム投稿タイプの記事一覧から、特定のタームに属する記事を除外する方法についてです。
PHP
'tax_query' => array( array( 'taxonomy' => 'news_cat', // カスタム投稿タイプ 'field' => 'slug', // タームの種類 'terms' => 'others', // 除外したい記事のタームを指定。 'operator' => 'NOT IN', // termsで指定したタームを除外。 ) ),
tax_queryパラメータ
クエリにtax_query
パラメータの指定を行います。
下記4つのパラメータの指定が必要です。
taxonomy
… カスタム投稿タイプfield
… タームの種類terms
… 特定のタームを指定operator
… 表示の有無
まとめ
以上、WordPressのカスタム投稿で、カスタムタクソノミーの特定のタームを対象から除外する方法についてご紹介しました。