KH-WEBLOG TOP > WEBメモ > WordPress > 特定の親カテゴリとその子カテゴリに属している投稿ページのデザインを変える:WordPress

特定の親カテゴリとその子カテゴリに属している投稿ページのデザインを変える:WordPress

指定した親カテゴリと、親カテゴリに属する子カテゴリに属する投稿記事(single.php)に対しての条件分岐の方法をメモ。

一つのカテゴリのみに属している記事に対しての条件分岐なら

<?php if (in_category(スラッグもしくはカテゴリID)): ?>
//ここに処理内容
<?php endif; ?>

で大丈夫なのですが、
このやり方だと指定した親カテゴリに属する子カテゴリに属している場合、反映されません。
親カテゴリを指定するだけで子カテゴリに属する記事にも反映させるには、

functions.php

function post_is_in_descendant_category( $cats, $_post = null ){
   foreach ( (array) $cats as $cat ) {
         $descendants = get_term_children( (int) $cat, 'category');
          if ( $descendants && in_category( $descendants, $_post ) )
              return true;
   }
   return false;
}

と記述し、あとはsingle.php内に

<?php if ( in_category(親カテゴリIDもしくはスラッグ) || post_is_in_descendant_category(親カテゴリIDもしくはスラッグ)) {
//ここに処理内容
} ?>

とすればOK

コーディング・WordPress化作業を代行します

WordPressのおすすめ参考書

楽天Kobo電子書籍ストア
¥3,278 (2024/03/28 10:09時点 | 楽天市場調べ)

TAGS

.htaccess ActionScript All in one seo pack Contact Form 7 CSS CSS3 EC-CUBE Flash HTML HTML5 JavaScript jQuery LightBox PHP RSS SEO WordPress アイキャッチ画像 アクセス解析 カスタムフィールド カテゴリー カラーミーショップ カート コメント ショートコード ソースコード テンプレートタグ ドロップダウンメニュー パーマリンク フォーム フルスクリーン プラグイン ページテンプレート ページナビ ページ分割 マウスイベント リダイレクト リンク レンタルサーバー ロールオーバー 携帯サイト 条件分岐 正規表現 角丸 関連記事