Use is_tax
instead of is_category
, and update get_ancestors
to get taxonomy from the queried object:
add_filter( 'body_class', 'custom_cat_archiev_class' );
function custom_cat_archiev_class( $classes ) {
if ( is_tax( ['custom_tax_1', 'custom_tax_2'] ) ) {
$term = get_queried_object();
$ancestors = get_ancestors( $term->term_id, $term->taxonomy, 'taxonomy' );
$classes[] = 'catlevel-' . ( count( $ancestors ) + 1 );
}
return $classes;
}