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のカスタム投稿で、カスタムタクソノミーの特定のタームを対象から除外する方法についてご紹介しました。



