in_category()


WordPressのin_category()関数は、現在の投稿が指定されたカテゴリーに属しているかどうかをチェックするために使用されます。

構文

in_category( int|string|array $category, int|WP_Post $post = null );

引数の説明:

  • $category(int|string|array) — チェックするカテゴリーのID、スラッグ、または配列。
  • $post(int|WP_Post) — チェックする投稿のIDまたは投稿オブジェクト。デフォルトは現在の投稿。

例1: 特定のカテゴリーに属するかどうかをチェック

この例では、投稿がカテゴリーIDが2のカテゴリーに属しているかどうかをチェックします。

<?php if ( in_category( 2 ) ) { echo 'この投稿はカテゴリー2に属しています。'; } ?>

例2: カテゴリースラッグを使用してチェック

カテゴリースラッグを使用して、投稿が特定のカテゴリーに属しているかどうかをチェックします。

<?php if ( in_category( 'news' ) ) { echo 'この投稿はニュースカテゴリーに属しています。'; } ?>

例3: 複数のカテゴリーをチェック

投稿が複数のカテゴリーのいずれかに属しているかどうかをチェックします。

<?php if ( in_category( array( 2, 'news', 'events' ) ) ) { echo 'この投稿は指定されたカテゴリーのいずれかに属しています。'; } ?>

例4: 特定の投稿をチェック

現在の投稿ではなく、特定の投稿がカテゴリーに属しているかどうかをチェックします。

<?php if ( in_category( 'news', get_post( 123 ) ) ) { echo 'この投稿はニュースカテゴリーに属しています。'; } ?>

例5: カテゴリーに属していない場合の処理

投稿が指定されたカテゴリーに属していない場合にメッセージを表示します。

<?php if ( ! in_category( 'news' ) ) { echo 'この投稿はニュースカテゴリーに属していません。'; } ?>

例6: カスタムクエリで使用

カスタムクエリを使用して、特定の投稿がカテゴリーに属しているかどうかをチェックします。

<?php $query = new WP_Query( array( 'p' => 123 ) ); if ( $query->have_posts() ) { while ( $query->have_posts() ) { $query->the_post(); if ( in_category( 'news' ) ) { echo 'この投稿はニュースカテゴリーに属しています。'; } } } wp_reset_postdata(); ?>

注意点

  • カテゴリーIDやスラッグが正しいことを確認してください。
  • 投稿オブジェクトを指定する場合、その投稿が存在することを確認してください。
  • カスタムクエリを使用する場合、wp_reset_postdata()を忘れずに呼び出してください。

関連機能: