【ワードプレス】親子関係のあるすべてのカテゴリオブジェクトを取得する

親・子・孫など3階層以上のカテゴリがあり、そのすべてのカテゴリオブジェクトを取得したかったので、指定したカテゴリから親カテゴリまでのすべてのカテゴリオブジェクトを取得してくれる再帰的処理な関数を作りました。

/**
 *  カテゴリオブジェクトを再帰的に取得
 */
if (! function_exists('category_recursive')):
function category_recursive($obj, $cats = array()){
    $cats[] = $obj;
    if($obj->category_parent > 0){
        $obj = get_category($obj->category_parent);
        return category_recursive($obj, $cats);
    }else{
        return $cats;
    }
}   
endif;

上記関数を以下のように使えば、親子関係のあるすべてのカテゴリオブジェクトが取得できます。

// カテゴリオブジェクトを取得
$cat = get_the_category($post->ID);
$cat = $cat[0];

// 親子関係のあるカテゴリオブジェクトをすべて取得
$cats = category_recursive($cat);

print_r($cats);

 

 

お気軽にコメントをどうぞ

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください