我正在尝试为Woocommerce创建自定义动态菜单,但似乎被卡住了。要将我的类别标记为活动,我需要我当前所在页面的类别ID。
如果我在一个类别中,我会得到这样的id:
  if (is_product_category()) {
      global $wp_query;
      $curent_Cat_ID = $wp_query->get_queried_object()->term_id;
  } 但它不会在产品页面上显示任何内容。有没有办法在产品页面上获取类别id?我能找到的东西不再起作用了。或者以某种方式获得一个像breadcrumbs这样的带有ID的数组?
发布于 2021-05-02 15:32:17
好了,睡个好觉,最终我找到了答案。如果有人在这里需要它,那就是:
       if ( is_tax( 'product_cat' ) ) {
            $current_cat   = get_queried_object_id();
            $cat_ancestors = get_ancestors( $current_cat, 'product_cat' );
        } elseif ( is_singular( 'product' ) ) {
            $terms = wc_get_product_terms(
                get_queried_object_id(),
                'product_cat',
                apply_filters(
                    'woocommerce_product_categories_widget_product_terms_args',
                    array(
                        'orderby' => 'parent',
                        'order'   => 'DESC',
                    )
                )
            );
            if ( $terms ) {
                $main_term     = apply_filters( 'woocommerce_product_categories_widget_main_term', $terms[0], $terms );
                $current_cat   = $main_term->term_id;
                $cat_ancestors = get_ancestors( $main_term->term_id, 'product_cat' );
            }
        }https://stackoverflow.com/questions/67351233
复制相似问题