如何在Woocommerce购物车与结账页仅展示商品父级分类
实现方法
你可以先获取产品关联的所有分类,筛选出顶级父分类后再输出,替换你原来的echo wc_get_product_category_list( $cart_item['product_id'] );代码即可,示例代码如下:
// 获取当前购物车商品的产品ID $product_id = $cart_item['product_id']; // 获取产品关联的所有产品分类对象 $categories = get_the_terms( $product_id, 'product_cat' ); $parent_cats = []; if ( $categories && ! is_wp_error( $categories ) ) { foreach ( $categories as $cat ) { // 直接匹配顶级分类(父级ID为0) if ( $cat->parent == 0 ) { // 如果不需要分类跳转链接,可直接写 $parent_cats[] = $cat->name; $parent_cats[] = '<a href="' . get_term_link( $cat ) . '">' . $cat->name . '</a>'; } else { // 若当前是子分类,向上追溯到最顶级父分类 $parent_id = $cat->parent; while ( $parent_id != 0 ) { $parent_cat = get_term( $parent_id, 'product_cat' ); if ( $parent_cat->parent == 0 ) { $parent_cats[] = '<a href="' . get_term_link( $parent_cat ) . '">' . $parent_cat->name . '</a>'; break; } $parent_id = $parent_cat->parent; } } } // 对重复的顶级分类去重后,用逗号分隔输出 echo implode( ', ', array_unique( $parent_cats ) ); }
- 无论产品关联的是子分类还是父分类,代码都会自动追溯输出最顶级的父分类
- 内置去重逻辑,避免同一个顶级分类重复展示
- 可根据需求自行调整是否保留分类跳转链接
内容的提问来源于stack exchange,提问作者ASdsgnr
相关产品推荐
相关产品推荐

