//最上位のカテゴリを取得(カテゴリ名から)
function get_term_ancestor_by_term ( $sbjcat = ”, $tax_name = ‘category’ ) {
// [$sbjcat = カテゴリIDまたはスラッグ],
// [$tax_name = タクソノミ名]
if ( empty( $sbjcat ) && is_category() ) {
$sbjcat = get_query_var( ‘cat’ ); //カテゴリページ
} elseif ( empty( $sbjcat ) && is_tax() ) {
$sbjcat = get_query_var( ‘term_id’ );
$tax_name = get_query_var(‘taxonomy’); //カスタムタクソノミページ
} elseif ( !is_numeric( $sbjcat ) ) {
$sbjcat = get_term_by( ‘slug’, $sbjcat, $tax_name )->term_id; //スラッグからIDを取得
}
if ( !$sbjcat ) return false; //カテゴリ取得不可
$ancestors = array_reverse( get_ancestors( $sbjcat , $tax_name ) );
if( isset( $ancestors[0] ) ) $ancestor_id = $ancestors[0]; else $ancestor_id = $sbjcat;
return get_term( $ancestor_id , $tax_name );
}