説明
is_tax() は、カスタムタクソノミーのアーカイブを表示しているかを判定する関数です。
基本構文
is_tax( string|string[] $taxonomy = '', int|string|int[]|string[] $term = '' ): bool
引数
$taxonomy:タクソノミー名$term:ターム(省略可)
戻り値
条件に当てはまれば true、そうでなければ false。
使い方(サンプル)
if ( is_tax( 'genre', 'rock' ) ) {
// genre タクソノミーの rock 一覧
}
注意点
- カテゴリーとタグ(標準のタクソノミー)では、
is_category()/is_tag()を使うのが一般的です。 - タクソノミー名を省略すると、すべてのカスタムタクソノミーが対象になります。
実務での使いどころ
- カスタムタクソノミーのアーカイブで、表示を変えるとき。
- 特定のターム(スラッグ)のアーカイブだけで、処理を変えるとき。
よくあるミスと対処
- カテゴリーやタグに使っている。これらには
is_category()・is_tag()を使う。 - 個別ページで、投稿がタームを持つかを判定するつもりで使っている。投稿のタームは
has_term()で判定する。
NG例
// お知らせの個別ページで
if ( is_tax( 'news_cat', 'important' ) ) {
// 当てはまらない(アーカイブの判定)
}
OK例
if ( is_singular( 'news' ) && has_term( 'important', 'news_cat' ) ) {
// important タームを持つお知らせ
}
使い分け早見表
| やりたいこと | 使うもの |
|---|---|
| カスタムタクソノミーのアーカイブか | is_tax() |
| 投稿が、そのタームを持つか | has_term() |
| カテゴリー・タグのアーカイブか | is_category()、is_tag() |
関連項目
is_category()、is_tag()、is_post_type_archive()
公式リファレンス:is_tax() | Function | WordPress Developer Resources

コメント