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
1 Answer
Reset to default 0Use 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;
}