つながるnet

表示中のカテゴリとその子カテゴリのリスト

表示中のカテゴリページのサイドメニューなどで活用できるスニペット。

<?php
	$root =  get_bloginfo('home');
	$catSlg = $category_name;//現在のスラグを取得
	$cats = get_category_by_slug($catSlg);//現在のスラグからカテゴリ情報を取得
	$pCatId = $cats->parent;//親カテゴリIDを取得
	if ($pCatId > 0) {//親カテゴリが存在すれば
		$cats = get_term($pCatId, 'category' );//親カテゴリの情報を取得
	}else{//親カテゴリがなければ(自分が親カテゴリなら)
		$pCatId = $cats->term_id;//親カテゴリIDを取得
	}
	$cCatIds = get_term_children( $pCatId, 'category' );//子カテゴリのIDリストを配列で取得

	$pCatNam = $cats->name;//親カテゴリ名を取得
	$pCatSlg = $cats->slug;//親カテゴリスラグを取得

	$cCats = array();//子カテゴリ情報用の空配列
	foreach($cCatIds as $cCatId){//子カテゴリのIDリストから各子カテゴリの情報を取得
		$cCat = get_term($cCatId, 'category' );
		$cCatNam = $cCat->name;
		$cCatSlg = $cCat->slug;
		$cCats[] = array( 'cCatSlg'=>$cCatSlg, 'cCatNam'=>$cCatNam );//子カテゴリの名前とスラグを連想配列に格納
	}
	asort($cCats);//子カテゴリをスラグでソート
	$cCatsStr = "";
	foreach($cCats as $cCat){//ソート済み子カテゴリを展開
		$cCatNam = $cCat[cCatNam];
		$cCatSlg = $cCat[cCatSlg];
		$cCatsStr .= "<dd><a href='{$root}/{$cCatSlg}'>{$cCatNam}</a></dd>\n";
	}
	if ($pCatNam == ""){//カテゴリページ以外の場合
		if (is_search()) $pCatNam = "サイト内検索";
		if (is_404()) $pCatNam = "見つかりません";
	}

?>

				<dl class="sideNav">
					<dt><h3><?php echo $pCatNam ?></h3></dt>
					<?php echo $cCatsStr ?>
				</dl>

直接メールしてみる

お名前 (必須)
メールアドレス (必須)
件名
ご相談内容
画像文字をご入力ください
captcha

コメントを残す