has_term()
関数は、投稿にタクソノミーが設定されているかどうかを判断する関数です。
目次
has_term() 関数とは
投稿にタクソノミーが設定されているかどうかを判断します。
パラメーターに指定された情報は、内部でターム IDやターム名、タームスラッグと照らし合わせて判断されます。
パラメーター
$term | タームの名前、 ID、スラッグまたはそれらの配列を指定 |
$taxonomy | タクソノミー名を設定 |
$post | 確認する投稿を設定 デフォルトでは現在の投稿 |
使い方
タームを判断するものなので、カスタムタクソノミーだけではなく標準的なカテゴリーやタグにも利用することができます。
カテゴリーの場合は以下のようになります。
if ( has_term( 'uncategorized', 'category' ) ) {
echo "この投稿はカテゴリー:未分類です。";
} else {
echo "この投稿はカテゴリー:未分類ではありません。";
}
タグの場合は以下のようになります。
if ( has_term( 'markup', 'post_tag' ) ) {
echo "この投稿はタグ:マークアップが設定されています。";
} else {
echo "この投稿はタグ:マークアップが設定されていません。";
}
また、特定のタクソノミーが設定されているかどうかを判断させることもできます。
if ( has_term( '', 'post_tag' ) ) {
echo "なにかしらタグが設定されています";
} else {
echo "タグは設定されていません";
}
さらに複数のタームで絞り込みたい場合には以下のように配列を使うこともできます。
if ( has_term( array( 'hoge', 'haga' ), 'taxonomy-name' ) ) {
//
}
フック
ありません。
まとめ
こちらの関数は何かパラメーターを指定して判断をさせることが多いでしょう。特定のタームが設定された際に特別な処理を施したい場合にはとても便利です。