説明
has_category() は、投稿にカテゴリーが付いているかを判定する関数です。
基本構文
has_category( string|int|array $category = '', int|WP_Post $post = null ): bool
引数
$category:カテゴリー(省略可)$post:投稿IDまたはオブジェクト
戻り値
付いていれば true。
使い方(サンプル)
if ( has_category( 'news' ) ) {
// 実行したい処理
}
注意点
- 省略すると、カテゴリーが何か付いているかの判定になります。
実務での使いどころ
- 投稿が、カテゴリーを持つか(どのカテゴリーでもよい)を、判定するとき。
- 特定のカテゴリーを、持つかを判定するとき。
よくあるミスと対処
- カスタムタクソノミーに使っている。カスタムタクソノミーには
has_term()を使う。 - カテゴリーのアーカイブページの判定に使っている。アーカイブの判定は、
is_category()。
NG例
if ( has_category( 'news' ) ) {
// カテゴリーのアーカイブの判定のつもり
}
OK例
if ( is_category( 'news' ) ) {
// カテゴリーのアーカイブ
}
使い分け早見表
| やりたいこと | 使うもの |
|---|---|
| 投稿が、カテゴリーを持つか | has_category() |
| 投稿が、特定のカテゴリーに属するか | in_category() |
| カテゴリーのアーカイブか | is_category() |
関連項目
公式リファレンス:has_category() | Function | WordPress Developer Resources

コメント