ワードプレスで現在ページの親カテゴリ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階層以上ある場合、何かの役立つかもしれません。