is_tax()
関数は、カスタムタクソノミーアーカイブページを表示しているかどうかを判断する関数です。
is_tax() 関数とは
カスタムタクソノミーアーカイブページを表示しているかどうかを判断します。
$taxonomy
を指定した場合、そのタクソノミーに関するものかどうかを判断します。また、$taxonomy
に加えて $term
を指定した場合、指定したタームに関するものかどうかを判断します。
パラメーター
$taxonomy | タクソノミーのスラッグやそれらを含む配列 |
$term | ターム ID、ターム名、タームスラッグやそれらを含む配列 |
使い方
例えば以下のようなカスタムタクソノミーを用意したとします。
- タクソノミースラッグ:test-taxonomy(slug:
test-taxonomy
)、sample-taxonomy(slug:sample-taxonomy
) - ターム名:hoge(slug:
hoge
)、hage(slug:hage
)
まず、カスタムタクソノミーアーカイブページかどうかを判断する場合、以下のように記述します。
if ( is_tax() ) {
echo "このページはカスタムタクソノミーアーカイブページです。";
}
カスタムタクソノミー test-taxonomy
のアーカイブページのみ実行させる場合は以下のように記述します。
if ( is_tax( 'test-taxonomy') ) {
echo "このページはカスタムタクソノミー test-taxonomy のアーカイブページです。";
}
さらに、カスタムタクソノミー test-taxonomy
内のターム hoge のみ実行させる場合には以下のように記述します。
if ( is_tax( 'test-taxonomy', 'hoge' ) ) {
echo "このページはカスタムタクソノミー test-taxonomy でタームが hoge アーカイブページです。";
}
ターム名を配列で複数指定することもできます。タクソノミー名も同様に配列で指定できます。
if ( is_tax( 'test-taxonomy', array( 'hoge', 'hage' ) ) ) {
echo "このページはカスタムタクソノミー test-taxonomy でタームが hoge と hage のアーカイブページです。";
}
フック
ありません。
まとめ
カスタムタクソノミーやタームの考え方は混乱する方も少なくないので注意が必要です。
また、is_category()
と is_tag()
、 is_tax()
を併用して全てのタクソノミーアーカイブページ(カテゴリーもタグも含む)を判断することもできます。以下にサンプルを掲載します。
if ( is_category() || is_tag() || is_tax() ){
// カテゴリーかタグかカスタムタクソノミーかであれば実行する
}