has_term()


WordPress関数has_term()は、特定の投稿が指定されたタクソノミーの用語に関連付けられているかどうかを確認するために使用されます。

シンタックス

has_term( mixed $term, string $taxonomy = '', int|WP_Post|null $post = null );

引数の説明:

  • $term (mixed) — 確認する用語。文字列、配列、または整数(用語ID)を指定可能。
  • $taxonomy (string) — 確認するタクソノミー。省略時は全てのタクソノミーが対象。
  • $post (int|WP_Post|null) — 確認する投稿。省略時は現在の投稿が対象。

例 1: 投稿が特定のカテゴリに属しているか確認

以下のコードは、投稿がカテゴリ「news」に属しているかどうかを確認します。

<?php if ( has_term( 'news', 'category' ) ) { echo 'この投稿はニュースカテゴリです。'; } ?>

例 2: 投稿が複数の用語に属しているか確認

配列で複数の用語を指定して確認する例です。

<?php if ( has_term( array( 'news', 'updates' ), 'category' ) ) { echo 'この投稿はニュースまたはアップデートカテゴリです。'; } ?>

例 3: タクソノミーを指定せずに確認

タクソノミーを省略して全てのタクソノミーを対象にする例です。

<?php if ( has_term( 'special-term' ) ) { echo 'この投稿は特定の用語に属しています。'; } ?>

例 4: 現在の投稿以外を確認

特定の投稿IDを指定して確認する例です。

<?php if ( has_term( 'news', 'category', 42 ) ) { echo '投稿ID 42はニュースカテゴリです。'; } ?>

例 5: 投稿タイプ「product」で用語を確認

カスタム投稿タイプで使用されるタクソノミーを確認する例です。

<?php if ( has_term( 'electronics', 'product_cat' ) ) { echo 'この商品はエレクトロニクスカテゴリに属しています。'; } ?>

注意点

  • 引数$termには正確な値を指定する必要があります。
  • カスタムタクソノミーを使用する場合、$taxonomyを正確に指定してください。
  • 現在の投稿が確認対象でない場合は、$postを明示的に指定してください。

関連機能: