説明
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() |
関連項目
公式リファレンス:in_category() | Function | WordPress Developer Resources

コメント