ワードプレスで現在ページの親カテゴリIDを取得する方法です。
if(! function_exists('get_category_parent_id')):
function get_category_parent_id($cat_id = FALSE)
{
global $post;
if(is_category()){
$cat = get_queried_object();
}else{
// post_idのすべてのカテゴリを取得
$cats = get_the_category($post->ID);
// cat_idに指定があったら指定のカテゴリオブジェクトを取得
if($cat_id){
$cats = array_filter($cats, function($cat) use($cat_id){
return ($cat->term_id == $cat_id);
});
$cats = array_values($cats);
}
if(empty($cats))
return FALSE;
$cat = $cats[0];
}
// category_parentが0ではない場合、親カテゴリIDを返す
if($cat->category_parent){
return $cat->category_parent;
}else{
return $cat->term_id;
}
}
endif;
もう少し条件分岐をしたいところですが、今回はシンプルにしました。1カテゴリが2階層以上ある場合、何かの役立つかもしれません。
