子カテゴリを含むカテゴリーリストを自由なソースで表示:WordPress
WordPressで、子カテゴリを含むカテゴリーリストを自由なソースで表示させる方法をメモ。
サイドバーなどに、
<?php //カテゴリーリスト&記事一覧 $args=array( //いらないパラメータは省略可 'type' => 'post', 'child_of' => '', 'parent' => 0, 'orderby' => 'name', 'order' => 'ASC', 'hide_empty' => 1, 'hierarchical'=> 1, 'exclude' => '0', 'pad_counts' => false ); $categories=get_categories($args); //取得したカテゴリへの各種処理 foreach($categories as $val){ //カテゴリのリンクURLを取得 $cat_link = get_category_link($val->cat_ID); //子カテゴリのIDを配列で取得 $child_cat_num = count(get_term_children($val->cat_ID,'category')); //子カテゴリが存在する場合 if($child_cat_num > 0){ //親カテゴリのリスト出力 echo '<li class="parent"><a href="' . $cat_link . '">' . $val -> name . '</a></li>'; echo '<ul class="subcat">'; //子カテゴリの一覧取得条件 $category_children_args = array('parent'=>$val->cat_ID); //子カテゴリの一覧取得 $category_children = get_categories($category_children_args); //子カテゴリの数だけリスト出力 foreach($category_children as $child_val){ $cat_link = get_category_link($child_val -> cat_ID); echo '<li><a href="' . $cat_link . '">' . $child_val -> name . '</a>'; } echo '</ul>'; } //子カテゴリが存在しない場合 else{ echo '<li class="parent"><a href="' . $cat_link . '">' . $val -> name . '</a></li>'; } } ?>
でOK
これで
<ul> <li class="parent"><a href="#">親カテゴリー名</a></li> <ul class="subcat"> <li><a href="#">子カテゴリー名</a></li> </ul> </ul>
といったソースで表示させることが出来ます。
WordPressのおすすめ参考書
bookfan 1号店 楽天市場店
¥3,300 (2024/10/28 20:37時点 | 楽天市場調べ)
ポチップ
ポチップ