在woocommerce主题店面中将菜单替换为子类别

时间:2019-07-16 08:45:58

标签: php wordpress woocommerce

我为一家鞋店的woocommerce“店面”自定义了一个wordpress主题,我创建了5个带有子类别的菜单。 我的类别是这样的。

  • 哼唱

    • A

      • 1
        • a
        • b
      • 2
    • B

      • 1
        • a
        • b
      • 2
    • C
      • 1
      • 2
  • 女人
    • A
      • 1
        • a
        • b
      • 2
    • B
      • 1
      • 2
    • C
      • 1
      • 2 ...

-男性/女性菜单(*次要菜单) 当我们单击男性或女性页面时,我们会遇到类别页面。 -主常规菜单(标准菜单) 初级男子 -主要类别女人 -主要儿童类别 我找到了单击男性或女性时主菜单根据类别页面更改的解决方案。

   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,但目前我无法在所有类别的女人或男人中保留正确的菜单

0 个答案:

没有答案