【WordPress】is_tax()の使い方まとめ|カスタムタクソノミーを条件分岐で判定する方法

WordPressのis_tax()関数の使い方を解説する図

はじめに

WordPressでは、投稿をカテゴリーやタグで分類するだけでなく、独自の分類方法(カスタムタクソノミー)を追加することができます。こうしたカスタムタクソノミーのアーカイブページを判定する際に便利なのが、is_tax() 関数です。

この記事では、is_tax() の基本的な使い方から実践的な活用方法まで、具体例とともにわかりやすく解説します。

is_tax()とは?

is_tax() は、現在表示されているページがカスタムタクソノミーのアーカイブページであるかどうかを判定するための条件分岐タグです。以下のような構文で使用します:

is_tax( $taxonomy = '', $term = '' )
  • $taxonomy:タクソノミー名(例:’genre’)
  • $term:ターム名またはID(例:’action’)

引数を省略すると、任意のカスタムタクソノミーのアーカイブページであれば true を返します。

is_tax()の基本的な使い方

以下の図は、is_tax()の基本構文と具体的な使い方を示したものです。

is_tax()関数の構文と使用例を図解したイメージ

それぞれのパターンに対応したコード例を以下に紹介します。

引数なしで使う

if ( is_tax() ) {
  echo 'これはカスタムタクソノミーのアーカイブページです。';
}

タクソノミー名を指定する

if ( is_tax( 'genre' ) ) {
  echo 'これはジャンル(genre)のアーカイブページです。';
}

タクソノミー名とタームを指定する

if ( is_tax( 'genre', 'action' ) ) {
  echo 'これはジャンルがアクションのアーカイブページです。';
}

複数のタクソノミーをまとめて判定したい場合は、配列を使うこともできます。

if ( is_tax( array( 'genre', 'writer' ) ) ) {
  echo 'ジャンルか著者のアーカイブページです。';
}

is_category() / is_tag() との違い

  • is_category() はデフォルトのカテゴリー(category)アーカイブページ専用
  • is_tag() はデフォルトのタグ(post_tag)アーカイブページ専用
  • is_tax() はそれ以外のカスタムタクソノミーに対応

つまり、is_tax() はカスタム分類に対応した汎用的な関数であり、カスタム投稿タイプと組み合わせて使う際に非常に有用です。

よくある用途・活用例

タクソノミーごとにテンプレートの見た目を変える

if ( is_tax( 'genre', 'comedy' ) ) {
  get_template_part( 'template-parts/genre-comedy' );
}

特定のタクソノミーでバナーを表示

if ( is_tax( 'campaign' ) ) {
  echo '<div class="banner">キャンペーン中!</div>';
}

注意点・よくあるミス

  • 通常の投稿や固定ページでは is_tax() は false を返します。
  • $taxonomy$term の指定ミス(スペルミスや存在しない値)に注意
  • テンプレート階層との関係も重要です:
    • taxonomy-{taxonomy}.php
    • taxonomy.php

is_tax() を使って出し分ける際、テンプレートファイルとの整合性を意識しましょう。

公式ドキュメントへのリンク

詳細は以下の公式リファレンスを参照してください: https://developer.wordpress.org/reference/functions/is_tax/

まとめ

is_tax() はカスタムタクソノミーのアーカイブページを判定するために欠かせない条件分岐タグです。カスタム投稿タイプと組み合わせて利用すれば、より柔軟で洗練されたテーマカスタマイズが可能になります。

タクソノミーの種類やタームごとの見た目変更、特定条件での表示制御など、活用の幅は広いため、ぜひ積極的に使いこなしていきましょう。