Sie müssen stattdessen die im Zusammenhang Wordpress bedingte Funktion has_term()
mit dem 'product_cat'
Taxonomie Argumente verwenden Produktkategorien auf diese Weise zum Ziel:
add_filter('body_class','custom_body_class');
function custom_body_class($classes) {
if (has_term(802, 'product_cat')) { // assuming that 802 is the id of a product category.
$classes[] = 'class1';
} else if (has_term(array('femme', 'homme', 'enfant'), 'product_cat')) {
$classes[] = 'class2';
}
return $classes;
}
Update 2 (basierend auf Ihrem Kommentar):
Wenn Archiv Kategorie (oder Unterkategorie) pag Es ist leer, kann get_queried_object()
Funktion verwendet werden, um das aktuelle Begriff Objekt zu erhalten und die Bedingungen in Ihrer Funktion anzupassen, um diese Fälle zu behandeln.
Hier ist der Code:
add_filter('body_class','custom_body_class');
function custom_body_class($classes) {
// Only on product category (or subcategory) archives pages
if(is_product_category()):
// Set HERE your Main category ID (the parent ID of subcategories IDs)
$main_cat = 802;
// Set HERE your subcategories slugs
$sub_cats_arr = array('femme', 'homme', 'enfant');
// Getting the current term (object) of category or subcategory archives page
$term = get_queried_object();
// All the needed data from current term (object)
$term_id = $term->term_id; // term ID
$term_slug = $term->slug; // term slug
$term_name = $term->name; // term name
$term_taxonomy = $term->taxonomy; // Always 'product_cat' for woocommerce product categories
$term_parent_id = $term->parent; // the parent term_id
// FOR YOUR MAIN CATEGORY ID '802' (Handle empty archive page case too)
if (has_term($main_cat, $term_taxonomy) || $term_id == $main_cat)
$classes[] = 'class1';
// FOR YOUR MAIN 3 SUBCATEGORIES SLUGS (Handle empty archive page case too)
if (has_term($sub_cats_arr, $term_taxonomy) || in_array($term_slug, $sub_cats_arr))
$classes[] = 'class2';
endif;
return $classes;
}
diese Weise können Sie den Fall vermeiden sollte, wenn Kategorie oder Unterkategorie Wich sehen kein Produkt enthalten, die nicht Ihren Körper benutzerdefinierte Klasse ...
ich nicht sicher bin ich nicht hinzufügen verstehe deine Frage richtig. Möchten Sie die css-Klasse zur Kategorieseite und deren Unterkategorien hinzufügen? Das heißt, ich habe eine Kategorie namens Fruit und die Unterkategorie Apple, Lemon ... und wollen die Unterkategorie Seite mit Apple und Lemon alle haben css class name Obst auf seinem Körper? – ucheng
ja LoicTheAztec gab mir die gute Lösung, danke sowieso ucheng! – colapsnux