Kategoriehierarchieebene als eine Body-class – Elternkatze = 1, Kinderkatze = 2, Enkel = 3

Ich finde das fast unmöglich, irgendwelche Informationen auf zu finden. Ich suche nach einer Möglichkeit, jeder Kategorieebene eine Nummer zuzuweisen und diese Nummer dann der Body-class hinzuzufügen. zB würde das übergeordnete Kategoriearchiv die class .catlevel-1 , während das .catlevel-2 Kategoriearchiv die class .catlevel-2 … usw. .catlevel-2 würde.

Solutions Collecting From Web of "Kategoriehierarchieebene als eine Body-class – Elternkatze = 1, Kinderkatze = 2, Enkel = 3"

Sie können dies erreichen, indem Sie den folgenden benutzerdefinierten Code verwenden. Sie können den Code verwenden, indem Sie ihn in der Datei functions.php des untergeordneten Designs oder in der benutzerdefinierten Plugin-Datei hinzufügen.

 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; } 

Interessant! Es ist nicht so schwer, Sie müssen den Filter body_class :

 add_filter('body_class', 'category_level_as_class'); function category_level_as_class($classes) { //First check if we're at a category archive page if (is_category()) { //Set our counter $i = 1; //Get current category parent $category = get_the_category(); $parent = $category[0]->parent; //Loop through categories parent while ($parent > 0) { $i++; //Now get parent category info $category = get_category($parent); $parent = $category->parent; } //Add the class $classes[] = 'catlevel-' . $i; } return $classes; }