has_category()


WordPressのhas_category()関数は、現在の投稿または指定された投稿が特定のカテゴリーに属しているかどうかを確認するために使用されます。この関数は、条件分岐やカテゴリーに基づいたコンテンツの表示に役立ちます。

構文

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

引数の説明:

  • $category(int|string|array) — チェックするカテゴリーのID、スラッグ、または配列。省略した場合、現在の投稿のカテゴリーがチェックされます。
  • $post(int|WP_Post) — チェックする投稿のIDまたは投稿オブジェクト。省略した場合、現在の投稿が使用されます。

例1: 現在の投稿が特定のカテゴリーに属しているか確認

この例では、現在の投稿が「news」というカテゴリーに属しているかどうかを確認します。

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

例2: 特定の投稿が複数のカテゴリーに属しているか確認

この例では、IDが5の投稿が「news」または「updates」カテゴリーに属しているかどうかを確認します。

<?php if ( has_category(array('news', 'updates'), 5) ) { echo 'この投稿はニュースまたはアップデートカテゴリーに属しています。'; } ?>

例3: カテゴリーIDを使用して確認

この例では、カテゴリーIDを使用して現在の投稿が特定のカテゴリーに属しているかどうかを確認します。

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

例4: カテゴリーに基づいてコンテンツを表示

この例では、現在の投稿が「events」カテゴリーに属している場合に特定のメッセージを表示します。

<?php if ( has_category('events') ) { echo 'この投稿はイベント関連です。'; } else { echo 'この投稿はイベント関連ではありません。'; } ?>

例5: カスタム投稿タイプでhas_category()を使用

この例では、カスタム投稿タイプの投稿が特定のカテゴリーに属しているかどうかを確認します。

<?php if ( has_category('workshop', get_post(15)) ) { echo 'このワークショップ投稿はワークショップカテゴリーに属しています。'; } ?>

例6: カテゴリーの有無に基づいてスタイルを変更

この例では、現在の投稿が「featured」カテゴリーに属している場合にクラスを追加します。

<article class="<?php echo has_category('featured') ? 'featured-post' : 'regular-post'; ?>">...</article>

例7: 複数のカテゴリーをチェックして条件分岐

この例では、現在の投稿が「news」または「updates」カテゴリーに属している場合に異なるコンテンツを表示します。

<?php if ( has_category('news') ) { echo 'ニュース関連の投稿です。'; } elseif ( has_category('updates') ) { echo 'アップデート関連の投稿です。'; } ?>

例8: カテゴリーがない場合の処理

この例では、現在の投稿がどのカテゴリーにも属していない場合にメッセージを表示します。

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

注意点:

  • has_category()は、投稿が指定されたカテゴリーに属しているかどうかをブール値で返します。
  • カテゴリーのスラッグやIDを正確に指定する必要があります。
  • カスタム投稿タイプで使用する場合、カテゴリーがサポートされていることを確認してください。

関連機能: