我为一家鞋店的woocommerce“店面”自定义了一个wordpress主题,我创建了5个带有子类别的菜单。 我的类别是这样的。
哼唱
A
B
-男性/女性菜单(*次要菜单) 当我们单击男性或女性页面时,我们会遇到类别页面。 -主常规菜单(标准菜单) 初级男子 -主要类别女人 -主要儿童类别 我找到了单击男性或女性时主菜单根据类别页面更改的解决方案。
add_filter( 'wp_nav_menu_args', function($args){
if(isset($args['theme_location']) && $args['theme_location'] == 'primary- menu') {
unset($args['theme_location']);
if(is_product_category( 'femme') || is_page(221) || is_shop('femme')|| is_product()) {
//
$args['menu'] = "Femme Menu";
}
elseif(is_product_category( 'homme' )|| is_page(122) || is_shop('homme') || is_product()) {
$args['menu'] = "Homme Menu";
}
else{
$args['menu'] = "Général menu";
}
}return $args;
});
过滤器可以很好地改变类别中的菜单,但不考虑第一级子类别。 当我单击子类别(-1,-a,-b)时,将返回“常规菜单”。 当我属于子类别时,菜单所在的位置不会更改。 我尝试了几种代码,但未达到正确的结果。
我尝试了哪些菜单来更改子类别。 在我尝试添加的条件下
cat_is_ancestor_of(209,get_queried_object()-> term_id) term_is_ancestor_of($父母,$小孩,210) 一些教程使用此代码,但不能在家里使用
is_product_category(数组(“女人”,“ a”,“ b”,“ c”,“ d”)) 问题是我在每个类别中都有很多子类别
woocommerce_subcats_from_parentcat_by_ID(210))) 我找到了这段代码来找到父母并注入到is_product_category的表中,但是它不起作用。
has_term(“ woman”,“ product_cat”,$ post-> ID) 我不知道怎么用...
我用来检索父母并将其重新插入到is_product_category()表中的函数
function woocommerce_subcats_from_parentcat($parent_cat_ID) {
$args = array(
'hierarchical' => 1,
'show_option_none' => '',
'hide_empty' => 0,
'parent' => $parent_cat_ID,
'taxonomy' => 'product_cat'
);
$subcats = get_categories($args);
foreach ($subcats as $sc) {
echo ', '. $sc->slug . ' ';
}
}
我正在寻找的结果: 当我属于已被替换的男人或女人类别(A,B,C)时,菜单在当前类别(a,b,c,1、2、3 ...)中的质量很高,直到产品页面。 (a,b,c,1,2,3 ...)将是一个megamenu,但目前我无法在所有类别的女人或男人中保留正确的菜单