【WordPress】子・孫カテゴリーのIDをすべてまとめて取得する方法

【WordPress】子・孫カテゴリーのIDをすべてまとめて取得する方法

制作・開発

あるカテゴリーの子カテゴリー・孫カテゴリーなど子孫カテゴリーのIDをまとめて取得する方法のメモです。

子孫カテゴリーのIDをget_term_childrenでまとめて取得する

階層のあるタクソノミーの子・孫タームのIDをまとめて取得するget_term_childrenという関数があります。

この関数を使って子孫カテゴリーのIDをまとめて取得してみましょう。

<?php
// 例: IDが6のカテゴリーの子孫カテゴリーを取得する.
$cat_id_list = get_term_children( 6, 'category' );
if ( ! is_wp_error( $cat_id_list ) && ! empty( $cat_id_list ) ) {
  // なにか処理する.
}

get_term_childrenの第1引数に親になるカテゴリーのIDを指定、第2引数にcategoryを指定します。

返り値は子孫カテゴリーIDの配列か、タクソノミーがなければWP_Errorになるので、適宜チェックしてからなにか処理しましょう。

実際は直接カテゴリーを書き込むのではなく、get_the_categoryなどで投稿に付いているカテゴリーを取得してからget_term_childrenを使うことになるでしょう…

…ということで、時々しか使わないだろう関数なので技術メモ的に記事にしておきました。

リファレンスはこちら▼

Merge all term children into a single array of their IDs.
developer.wordpress.org

ではまた。