你需要,而不是使用相关的WordPress条件函数has_term()
与'product_cat'
分类参数为目标的产品类别是这样的:
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;
}
更新2(根据您的评论)
:
当归档类别(或子类别)PAG ES是空的,可以使用get_queried_object()
函数来获得当期对象,并在你的函数修改条件来处理这些情况。
这里是代码:
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;
}
这种方式查看类别或子类至极不含产品,不添加自己的身体自定义类时,你应该避免的情况下...
我不知道我正确理解你的问题。你想添加css类到类别页面和它的所有子类别页面吗?这就是说,我有一个名为水果类别和子类别的苹果,柠檬......你想与苹果和柠檬在它的身上都有CSS类名果子类别页面? – ucheng
是LoicTheAztec红粉我很好的解决方案,还是要谢谢你ucheng! – colapsnux