WordPress関数の「get_categories()」を使った、親カテゴリーと子カテゴリーを一覧で表示する方法についてご紹介します。
登録されているカテゴリーを一覧で表示しますので、主にサイドバーで利用するのに便利です。
取得・出力したいHTMLのイメージはこちら
<ul> <li><a href="">親カテゴリー</a></li> <li> <a href="">親カテゴリー</a> <ul> <li><a href="">子カテゴリー</a></li> <li><a href="">子カテゴリー</a></li> <li><a href="">子カテゴリー</a></li> </ul> </li> </ul>
上記のようなHTMLの階層でカテゴリーを取得・出力したいと思います。
aタグのhref属性には、カテゴリーページへのリンクを入れる想定です。
親カテゴリーと子カテゴリーの一覧を取得する
<ul> <?php $categories = get_categories('parent=0'); foreach($categories as $category): ?> <li> <a href="<?php echo get_category_link($category->term_id); ?>"><?php echo $category->name; ?></a> <?php $childs = get_categories('child_of='.$category->term_id); if($childs): ?> <ul> <?php foreach($childs as $child): ?> <li> <a href="<?php echo get_category_link($child->term_id); ?>"><?php echo $child->name; ?></a> </li> <?php endforeach; ?> </ul> <?php endif; ?> </li> <?php endforeach; ?> </ul>
上記のコードを記述すると、先に紹介したHTMLのイメージで、カテゴリー表示を実装することができます。
重要なポイントだけ解説します。
「get_categories(‘parent=0’)」は、親カテゴリー(最上位のカテゴリー)のみを取得することができます。
「get_categories(‘child_of=’.$category->term_id)」は、親カテゴリーのIDを入れることで、子カテゴリーを取得することができます。
「if($childs)」の条件分岐で、子カテゴリーがあれば取得するように実装しています。
ユーザーコメント