WordPressメモ:特定の親カテゴリ以下の表示を切り替える。

カテゴリ1
カテゴリ2
├カテゴリ3
├カテゴリ4
└カテゴリ5

上記のようなカテゴリ構成の時、カテゴリ2およびそのサブカテゴリ(3~5)の表示を個別に切り替えたい場合。

<?php 
if (is_category(2)||is_category(3)||is_category(4)||is_category(5)) {
  ~処理~
}
?>

これで出来なくもありませんが、こうベタで書くと2のサブカテゴリを追加した場合に対応できません。

そこで、カテゴリを動的に取得して対応させる形にしましょう。

<?php 
$cat = get_the_category();              //今開いているカテゴリを取得
$parent_id = $cat[0]->category_parent;  //親カテゴリを取得
if (is_category(2)||$parent_id == 2) {
  ~処理~
}
?>

これでカテゴリ2と「カテゴリ2を親に持つカテゴリ」を抽出できます。

他のトップレベルカテゴリでも適用するならコピペして親を変えるだけです。

<?php 
$cat = get_the_category();
$parent_id = $cat[0]->category_parent;
if (is_category(2)||$parent_id == 2) {
  ~処理~
}
if (is_category(7)||$parent_id == 7) {
  ~処理~
}
if (is_category(10)||$parent_id == 10) {
  ~処理~
}
?>