1. HOME
  2. WordPress

in_category と is_category の違い:WordPress

投稿日:2015年9月23日/更新日:2015年9月23日
wordpress 1文字違いの in_category と is_category を今回はヘッダー、サイドバー、フッターなど共通のテンプレートに使用してカテゴリーページや記事ページの表示の違いを比較してみます。但し共通テンプレートの場合、記述によりカテゴリーページや記事ページ以外にも影響がありますが今回はこの表示に絞って比較します。

in_category

in_category(‘wordpress’) を記載
※ in_categoryはパラメータ必須
※ パラメータには管理画面「投稿」→「カテゴリー」の「スラッグ」を設定
<?php if ( in_category('wordpress') ): ?>
    A
<?php else: ?>
    B
<?php endif; ?>

wordpressのカテゴリーページとwordpressに属している記事ページでAを表示
他のカテゴリーや他の記事ページでBを表示

is_category

is_category() の場合(パラメータなし)
<?php if ( is_category() ): ?>
    A
<?php else: ?>
    B
<?php endif; ?>

カテゴリーページでAを表示
記事ページでBを表示

is_category(‘wordpress’)の場合
<?php if ( is_category('wordpress') ): ?>
    A
<?php else: ?>
    B
<?php endif; ?>

wordpressのカテゴリーページでAを表示
他のカテゴリーと全ての記事ページでBを表示

上記のように is_category でパラメータの設定ではカテゴリーページには反映されましたが記事ページには反映されませんでした。どの箇所に使用するかにより使い分けて設定を行います。

応用例

<?php if ( in_category( array( 'wordpress', 'css' ) ) ): ?>
    A
<?php elseif ( in_category( array( 'web', 'browser' ) ) ): ?>
    B
<?php else: ?>
    C
<?php endif; ?>

記事ページにパラメータが反映されるのが in_category でしたので複数設定する場合は上記の記述となります。

wordpress,cssのカテゴリーページとwordpress,cssに属している記事ページでAを表示

web,browserのカテゴリーページとweb,browserに属している記事ページでBを表示

他のカテゴリーや他の記事ページでCを表示となります。

1記事に対して複数のカテゴリーを設定している場合は条件分岐のコードのより上部に記載されている内容が優先されます。

条件分岐については以下もご覧ください。
WordPress 条件分岐:テンプレートのカスタマイズ

Leave a Reply





PAGE
TOP