現在表示しているカテゴリーの兄弟カテゴリー一覧を取得(親や子は含めない)

今回紹介するのは、こんなときに便利なカスタマイズです。

  • カテゴリーページで、現在表示しているカテゴリーと同じ親を持つ兄弟カテゴリを表示したい
  • 親カテゴリーや子カテゴリーは含めたくない

したいこと

イメージとしてはこんな感じです。赤線階層の一覧を取得します。

  • カテゴリー-親
  • カテゴリー-親
    • カテゴリー-子
    • カテゴリー-子
      • カテゴリー-孫
      • カテゴリー-孫
      • カテゴリー-孫(ここを見たときに、同じ階層の「カテゴリー-孫」一覧を取得)
        • カテゴリー-ひ孫

今回は、どのページでも使用できるように、カテゴリIDは指定しません。

ソースコード

<div>
  <?php
    global $cat;
    $cat_data = get_category( $cat );
    $args = array(
      'parent' => $cat_data->category_parent, // 自分のすぐ上カテゴリ(カテゴリー-子)の子カテゴリ(カテゴリー-孫)を取得
      'orderby' => 'term_order',
    );
    $categories = get_categories( $args );
  ?>
  <?php foreach( $categories as $category ) : ?>
    <a href="<?php echo get_category_link($category); ?>">
      <span><?php echo $category->name; ?></span>
    </a>
  <?php endforeach; ?>
</div>

普通に子カテゴリーを取得すると、ひ孫まで表示されてしまうので、「自分のすぐ上カテゴリ(カテゴリー-子)の子カテゴリ(カテゴリー-孫)を取得」という乱暴な?方法を取っています。

コメント

タイトルとURLをコピーしました