【WordPress】親カテゴリーと子カテゴリーをul要素の入れ子で一覧表示する方法

【WordPress】親カテゴリーと子カテゴリーをul要素の入れ子で一覧表示する方法

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)」の条件分岐で、子カテゴリーがあれば取得するように実装しています。

ユーザーコメント

0

0

457