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

説明

in_category() は、投稿が指定したカテゴリーに属しているかを判定する関数です。

基本構文

in_category( int|string|int[]|string[] $category, int|WP_Post $post = null ): bool

引数

  • $category:カテゴリーのID、名前、スラッグ(または配列)
  • $post:投稿IDまたはオブジェクト

戻り値

属していれば true。

使い方(サンプル)

if ( in_category( 'news' ) ) {
	// news カテゴリーの投稿
}

注意点

  • アーカイブページがそのカテゴリーかを調べるのは is_category() です。
  • 子カテゴリーは含まれません。

実務での使いどころ

  • 投稿が、特定のカテゴリー(ID・スラッグ・名前)に属するかを判定するとき。
  • カテゴリーごとに、表示を変えるとき。

よくあるミスと対処

  • カスタムタクソノミーに使っている。in_category() は、カテゴリーだけが対象。カスタムタクソノミーには has_term() を使う。
  • カテゴリーのアーカイブページの判定に使っている。アーカイブの判定は、is_category()。

NG例

if ( in_category( 'important' ) ) {
	// カスタムタクソノミーの important のつもり
}

OK例

if ( has_term( 'important', 'news_cat' ) ) {
	// カスタムタクソノミーの important
}

使い分け早見表

やりたいこと 使うもの
投稿が、カテゴリーに属するか in_category()
投稿が、任意のタームを持つか has_term()
カテゴリーのアーカイブか is_category()

関連項目

is_category()、has_term()

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

コメント

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