概要
in_category
関数は、投稿情報のカテゴリーを調べるためのWordPressの関数です。この関数は、特定の投稿が指定したカテゴリーに属しているかどうかを確認する際に非常に便利です。以下のようなシナリオでよく使用されます。
- 特定のカテゴリーに属する投稿の表示を制御する。
- テーマ内で異なるスタイルやレイアウトをカテゴリーに基づいて変更する。
- カテゴリーごとのカスタムメッセージを表示する。
- 関連投稿を表示する際にカテゴリーを考慮する。
- 投稿に対して異なるウィジェットの表示を制御する。
- フィルタリング機能を追加して、カテゴリー別にコンテンツを表示する。
- アーカイブページでの表示内容をカテゴリーに応じて変更する。
- 健康、安全、セキュリティなどの重要なカテゴリーに関連する情報を強調表示する。
構文
in_category( $category, $post_id );
パラメータ
$category
(string|int) – チェックしたいカテゴリーのIDまたはスラッグ。$post_id
(int) – (オプション)チェックする投稿のID。指定しない場合は、グローバルな$post
が使用される。
戻り値
- ブール値 (true または false)。指定したカテゴリーに投稿が属している場合は true、そうでない場合は false を返します。
関連する関数
使用可能なバージョン
- この関数は、WordPress 1.5.0以降で使用可能です。
コアファイル内のパス
- wp-includes/category.php
この関数のアクションでの使用可能性
アクション | 使用例 |
---|---|
mu_plugin_loaded | |
registered_post_type | |
plugins_loaded | |
wp_roles_init | |
setup_theme | |
after_setup_theme | |
set_current_user | |
init | |
register_sidebar | |
wp_loaded | 〇 |
send_headers | |
parse_query | |
pre_get_posts | 〇 |
wp | 〇 |
template_redirect | |
get_header | 〇 |
wp_head | 〇 |
サンプルコード
サンプル1: 特定のカテゴリーか確認
if ( in_category( 'news' ) ) {
echo 'この投稿はニュースカテゴリーに属しています。';
}
このサンプルコードは、現在の投稿が ‘news’ カテゴリーに属しているか確認し、メッセージを表示します。
サンプル2: 投稿リストでのカテゴリー確認
if ( in_category( 5, $post ) ) {
echo '<span class="highlight">特別カテゴリー投稿</span>';
}
投稿ID 5に属するカテゴリーがある場合に特別なスタイルを適用して表示します。
サンプル3: カテゴリーベースのカスタムロジック
if ( in_category( 'events' ) ) {
get_template_part( 'template-parts/content', 'event' );
} else {
get_template_part( 'template-parts/content', 'default' );
}
条件に応じて異なるテンプレートを読み込むことで、イベント投稿には特別な表示を行います。
サンプル4: カテゴリーの取得と表示
$categories = get_the_category();
foreach ( $categories as $category ) {
if ( in_category( $category->term_id ) ) {
echo '<p>投稿カテゴリー: ' . esc_html( $category->name ) . '</p>';
}
}
すべてのカテゴリーを取得し、各カテゴリーについて in_category
を使って表示するサンプルです。
サンプル5: カウント条件でのメッセージ表示
if ( in_category( 'tutorials' ) && get_comments_number() > 5 ) {
echo 'このチュートリアルには多くのコメントがあります!';
}
特定のカテゴリーに存在し、コメント数が5以上の場合に特定のメッセージを表示するサンプルです。