特定のカテゴリを親カテゴリにもつカテゴリーアーカイブ/エントリーの判定

ちょっと状況説明が難しいのだけど、
特定のカテゴリーを親カテゴリーにもつ「カテゴリーアーカイブ」と「エントリー」のみ表示を変えたいときの判定。

カテゴリーアーカイブの場合

<?php
//現ページのカテゴリーIDを取得 - get_query_var('cat')で現在表示しているカテゴリーアーカイブのIDが返ってくる。
$category_currentID = get_query_var('cat');

//カテゴリーIDからカテゴリー情報を取得 - get_categoryにカテゴリーIDを渡して該当カテゴリの情報を取得
$category_current = get_category($category_currentID);

//親カテゴリのIDを取得 - ->category_parentで親カテゴリの存在確認(親がなければ0が帰る)
$category_parentID = $category_current->category_parent; 

//もし親カテゴリがあれば
if ($category_parentID !== '0' ) {
	//get_categoryに親カテゴリのIDを渡して、親カテゴリの情報を取得
	$category_parent = get_category($category_parentID);
	if ($category_parent->slug === '親カテゴリー「〜」のスラッグ名') {
		echo '親カテゴリーが「〜」の場合の表示処理';
	} else {
		echo '通常処理';
	}
} else {
	echo '通常処理';
}
?>

エントリーの場合 (エントリーでの重複カテゴリーは考慮してないよ)

<?php

//現ページのカテゴリー情報を取得
$category_current = get_the_category();

//親カテゴリのIDを取得、エントリーの場合はget_the_categoryが多次元配列になっているので[0]つける
$category_parentID = $category_current[0]->category_parent;

//もし親カテゴリがあれば
if ($category_parentID !== '0' ) {
	//get_categoryに親カテゴリのIDを渡して、親カテゴリの情報を取得
	$category_parent = get_category($category_parentID);
	if ($category_parent->slug === '親カテゴリー「〜」のスラッグ名') {
		echo '親カテゴリーが「〜」の場合の表示処理';
	} else {
		echo '通常処理';
	}
} else {
	echo '通常処理';
}
?>

コメントをどうぞ

メールアドレスが公開されることはありません。 が付いている欄は必須項目です