css - Body class to each level of a hierarchical custom taxonomy

admin2025-06-06  3

How would this be adapted to apply to specific custom taxonomies?

add_filter( 'body_class', 'custom_cat_archiev_class' );
function custom_cat_archiev_class( $classes ) {
    if ( is_category() ) {
        $cat = get_queried_object();
        $ancestors = get_ancestors( $cat->term_id, 'category', 'taxonomy' );
        $classes[] = 'catlevel-' . ( count( $ancestors ) + 1 );
    }
    return $classes;
}

How would this be adapted to apply to specific custom taxonomies?

add_filter( 'body_class', 'custom_cat_archiev_class' );
function custom_cat_archiev_class( $classes ) {
    if ( is_category() ) {
        $cat = get_queried_object();
        $ancestors = get_ancestors( $cat->term_id, 'category', 'taxonomy' );
        $classes[] = 'catlevel-' . ( count( $ancestors ) + 1 );
    }
    return $classes;
}
Share Improve this question asked Nov 24, 2018 at 20:35 PetePete 1,0582 gold badges14 silver badges40 bronze badges
Add a comment  | 

1 Answer 1

Reset to default 0

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;
}
转载请注明原文地址:http://conceptsofalgorithm.com/Algorithm/1749153215a316818.html

最新回复(0)