2022.4.30|WordPress

WordPress(ワードプレス)で特定のカテゴリーを指定して判別する条件分岐の実装方法

WordPress(ワードプレス)で特定のカテゴリーを指定して判別する条件分岐の実装方法

WordPress(ワードプレス)で、記事の一覧ページや記事ページで特定のカテゴリーに属しているかを判別し表示する内容を変更したり、特定のカテゴリーを指定して条件分岐する場合、関数を利用してそれぞれを判別して実装する方法があります。

今回は、WordPress(ワードプレス)で特定のカテゴリーを指定して判別する条件分岐の実装方法を解説します。

特定のカテゴリーを指定して判別する2つの方法

WordPress(ワードプレス)で、特定のカテゴリーを指定して判別する場合、「is_category」「in_category」の2つの関数を利用して条件分岐を実装することができます。
2つの関数は一文字違うだけで利用用途が異なります。

【2つの方法】
is_category:カテゴリーアーカイブが表示されているか判別
in_category:現在の投稿に指定したカテゴリーが属しているか判別

記事ページ内(single.php)で使う場合は「in_category」を使う必要があります。

「is_category」「in_category」の関数を使って特定のカテゴリーを指定して判別する条件分岐の実装方法

「is_category」「in_category」の関数を使って特定のカテゴリーを指定して判別する場合は、記事一覧ページ(archive.php)やカテゴリー一覧ページ(single.php)で主に利用します。

「is_category」の関数を使って条件分岐

「is_category」の関数を使って条件分岐する場合は、「カテゴリー名」「カテゴリーID」「カテゴリースラッグ」を利用して特定のカテゴリーを判別して条件分岐することができます。

特定のカテゴリー名で判別する条件分岐コード

※指定したカテゴリー名のアーカイブページが表示されている場合。

<?php if( is_category('カテゴリー名') ) : ?>
指定したカテゴリー名ページの場合に表示する内容。
<?php else: ?>
それ以外のページで表示する内容。
<?php endif; ?>
特定のカテゴリーIDで判別する条件分岐コード

※指定したカテゴリーIDのアーカイブページが表示されている場合。

<?php if( is_category('カテゴリーID') ) : ?>
指定したカテゴリーIDページの場合に表示する内容。
<?php else: ?>
それ以外のページで表示する内容。
<?php endif; ?>
特定のカテゴリースラッグで判別する条件分岐コード

※指定したカテゴリースラッグのアーカイブページが表示されている場合。

<?php if( is_category('カテゴリースラッグ') ) : ?>
指定したカテゴリースラッグページの場合に表示する内容。
<?php else: ?>
それ以外のページで表示する内容。
<?php endif; ?>
特定のカテゴリーIDが複数ある場合で判別する条件分岐コード①

※指定したカテゴリーIDのアーカイブページが表示されている場合。

<?php if ( is_category( array( 'カテゴリーID①', 'カテゴリーID②' ) ) ): ?>
カテゴリーID①とカテゴリーID②のカテゴリーページのいずれかに属する場合に表示する内容。
<?php else: ?>
それ以外のページで表示する内容。
<?php endif; ?>
特定のカテゴリーIDが複数ある場合で判別する条件分岐コード②

※指定したカテゴリーIDのアーカイブページが表示されている場合。

<?php if( is_category('カテゴリーID①') ) : ?>
指定したカテゴリーID①の場合に表示する内容。
<?php elseif(is_category( 'カテゴリーID②' )) : ?>
指定したカテゴリーID②の場合に表示する内容。
<?php else : ?>
それ以外のページで表示する内容。
<?php endif; ?>

「in_category」の関数を使って条件分岐

「in_category」の関数を使って条件分岐する場合は、「カテゴリーID」「カテゴリースラッグ」を利用して特定のカテゴリーを判別して条件分岐することができます。

特定のカテゴリーIDで判別する条件分岐コード

※指定したカテゴリーIDに属する投稿の場合。

<?php if( in_category('カテゴリーID') ) : ?>
指定したカテゴリーIDに属する投稿記事に表示する内容。
<?php else: ?>
それ以外のページで表示する内容。
<?php endif; ?>
特定のカテゴリースラッグで判別する条件分岐コード

※指定したカテゴリースラッグに属する投稿の場合。

<?php if( in_category('カテゴリースラッグ') ) : ?>
指定したカテゴリースラッグに属する投稿記事に表示する内容。
<?php else: ?>
それ以外のページで表示する内容。
<?php endif; ?>
特定のカテゴリーIDが複数ある場合で判別する条件分岐コード①

※指定したカテゴリーIDに属する投稿の場合。

<?php if ( in_category( array( 'カテゴリーID①', 'カテゴリーID②' ) ) ): ?>
カテゴリーID①とカテゴリーID②に属する投稿記事に表示する内容。
<?php else: ?>
それ以外のページで表示する内容。
<?php endif; ?>
特定のカテゴリーIDが複数ある場合で判別する条件分岐コード②

※指定したカテゴリーIDに属する投稿の場合。

<?php if( in_category('カテゴリーID①') ) : ?>
指定したカテゴリーID①に属する投稿記事に表示する内容。
<?php elseif(in_category( 'カテゴリーID②' )) : ?>
指定したカテゴリーID②に属する投稿記事に表示する内容。
<?php else : ?>
それ以外のページで表示する内容。
<?php endif; ?>

まとめ

「is_category」や「in_category」関数は、記事一覧ページや記事ページでカテゴリー毎に異なる内容を表示させたい場合に必要ですので覚えておくと良いです。 このカテゴリーに属している場合はA画像、こちらのカテゴリーに属している場合はB画像と、振り分けることができるのでカテゴリー関連のページにデザインの幅が広がるのでユーザビリティの向上に繋がります。