has_category() の使い方|説明・引数・注意点

説明

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()

関連項目

in_category()、has_tag()

公式リファレンス:has_category() | Function | WordPress Developer Resources

コメント

タイトルとURLをコピーしました