WordPressで特定の親カテゴリーの子カテゴリーのみの一覧を表示する方法

WordPressで特定の親カテゴリーの子カテゴリーのみの一覧を表示する方法

WordPressで特定の親カテゴリーに属する子カテゴリーのみを表示したい場合、get_terms() 関数を使って簡単に実現できます。この記事では、親カテゴリーのスラッグに基づいて、その子カテゴリーだけをリスト表示する方法を紹介します。

実装方法

以下のコードを使用すると、親カテゴリーの子カテゴリーをリストとして表示することができます。get_term_by()get_terms() を組み合わせて、親カテゴリーを基準に子カテゴリーを取得します。

PHP
<ul class="category-nav__list">
  <?php
			// 親カテゴリーのスラッグを指定
			$parent_term = get_term_by('slug', 'parent-category', 'category');
			if ($parent_term):
				// 子カテゴリーを取得
				$terms = get_terms([
					'taxonomy' => 'category',
					'parent' => $parent_term->term_id,
					'hide_empty' => false, // 必要に応じて変更
				]);

				// 子カテゴリーをループして表示
				foreach($terms as $term):
			?>
  <li class="category-nav__item">
    <a class="category-nav__link" href="<?php echo get_term_link($term); ?>">
      <?php echo $term->name; ?>
    </a>
  </li>
  <?php
				endforeach;
			endif;
			?>
</ul>

解説

  1. get_term_by()
    この関数は親カテゴリー(parent-category)をスラッグを基に取得し、そのterm_id を取得します。
  2. get_terms()
    get_terms() 関数では、parent パラメーターに親カテゴリーの ID を指定することで、その子カテゴリーのみを取得します。hide_empty パラメーターを false に設定することで、投稿がないカテゴリーも取得できます。
  3. ループで子カテゴリーを表示
    取得した子カテゴリーを foreach ループで一つずつ表示します。

まとめ

このコードを適切なテンプレートファイルに追加することで、親カテゴリーの子カテゴリーだけをリストとして表示できます。WordPressサイトでカテゴリーに基づいたナビゲーションを作成する際に便利な方法です。

制作のご相談・ご依頼はこちらから!

Author

WARACRO(ワラクロ)

2018年に起業し、Webデザイナー・WebディレクターとしてWordPress案件を中心にWeb制作のお仕事をしています。
このブログでは、Webサイト制作に関する情報をお届けしています。

WordPress学習におすすめの書籍

Amazonの読み放題サービスKindle Unlimited無料体験キャンペーン実施中!

Amazon Kindle Unlimited 公式
Webデザイン学習におすすめの講座
To Top