スポンサーリンク
WordPress

WordPressで記事が属するカテゴリーによって条件分岐するコード。特殊なジャンルを扱うカテゴリーを作った時とかに。

この記事は約3分で読めます。
スポンサーリンク

どうも、サブロー(@saburo_design)です。

どうも、サブロー(@saburo_design)です。

記事として書く内容によっては、カテゴリーごとにテンプレートの内容を変えたいという時があると思います。

カテゴリーによってテンプレートを丸ごと別のものに適用するといった事もできますが、レイアウトを大きく変える訳ではないというのであれば、そんな時は属するカテゴリーによって条件分岐するコードが使えます。

属するカテゴリーによって条件分岐するコード

特定のカテゴリーの時に表示する

カテゴリーIDで指定する場合

<?php if(in_category(5)) : ?>
// カテゴリーIDが5のカテゴリーに属した記事の時に表示する
<?php endif; ?>

カテゴリースラッグ名で指定する場合

<?php if(in_category('news')) : ?>
// カテゴリースラッグが『news』のカテゴリーに属した記事の時に表示する
<?php endif; ?>

逆に特定のカテゴリーの時だけ表示しない

カテゴリーIDで指定する場合

<?php if(!in_category(5)) : ?>
// カテゴリーIDが5のカテゴリーに属した記事の時に表示しない
<?php endif; ?>

カテゴリースラッグ名で指定する場合

<?php if(!in_category('news')) : ?>
// カテゴリースラッグが『news』のカテゴリーに属した記事の時に表示しない
<?php endif; ?>

特定のカテゴリーアーカイブの時に条件分岐するコード

先ほどのin_categoryと違って、特定のカテゴリーのアーカイブページで条件分岐するis_categoryというコードがあります。一見似ていますが使い方は全く違います。

特定のカテゴリーのアーカイブページの時に表示する

カテゴリーIDで指定する場合

<?php if(is_category(5)) : ?>
// カテゴリーIDが5のアーカイブページの時に表示する
<?php endif; ?>

カテゴリースラッグ名で指定する場合

<?php if(is_category('news')) : ?>
// カテゴリースラッグが『news』のアーカイブページの時に表示する
<?php endif; ?>

逆に特定のカテゴリーの時だけ表示しない

カテゴリーIDで指定する場合

<?php if(!is_category(5)) : ?>
// カテゴリーIDが5のアーカイブページの時に表示しない
<?php endif; ?>

カテゴリースラッグ名で指定する場合

<?php if(!is_category('news')) : ?>
// カテゴリースラッグが『news』のアーカイブページの時に表示しない
<?php endif; ?>

まとめ

他のカテゴリーとはちょっと違う特殊なジャンルを扱うカテゴリーを作った時に使えます。

スポンサーリンク

美味しいものを食べに行ったり技術録を書いたり。最近ブログ用のデジカメを買って浮かれています。ツイッターとかインスタグラムもやってますのでフォローもお気軽にどうぞ。

サブローをフォローする
SABURO DESIGN
タイトルとURLをコピーしました