表示中のカテゴリページのサイドメニューなどで活用できるスニペット。
<?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>