如何在WooCommerce产品附加信息中添加分类并调整SKU显示位置
WooCommerce附加信息标签:添加产品分类并调整SKU位置
要实现同时展示产品分类,并将SKU移到附加信息表格顶部,你可以通过修改WooCommerce的属性显示过滤器来完成,具体代码和步骤如下:
核心代码实现
将以下代码添加到你的主题functions.php文件,或使用自定义代码插件(如Code Snippets):
// 移除原有可能重复的SKU显示钩子(如果之前有单独添加SKU的脚本,请取消下面这行注释并替换对应函数名) // remove_action( 'woocommerce_product_additional_information', '原SKU显示函数名' ); // 修改附加信息属性:添加分类+调整SKU到顶部 add_filter( 'woocommerce_display_product_attributes', 'custom_add_category_and_reorder_sku', 10, 2 ); function custom_add_category_and_reorder_sku( $attributes, $product ) { // 1. 添加产品分类到附加信息 $categories = wp_get_post_terms( $product->get_id(), 'product_cat', array( 'fields' => 'names' ) ); if ( ! empty( $categories ) ) { $attributes['product_category'] = array( 'label' => __( '产品分类', 'woocommerce' ), 'value' => implode( ', ', $categories ), ); } // 2. 将SKU移到属性列表顶部 if ( isset( $attributes['sku'] ) ) { $sku_attr = $attributes['sku']; unset( $attributes['sku'] ); $attributes = array_merge( array( 'sku' => $sku_attr ), $attributes ); } return $attributes; }
代码说明
- 添加产品分类:通过
wp_get_post_terms获取当前产品的分类名称,将其作为新属性添加到附加信息的属性数组中,标签显示为“产品分类”,多个分类用逗号分隔。 - 调整SKU位置:先从属性数组中移除默认的SKU项,再通过
array_merge将SKU项放到数组的最开头,这样在前端表格中就会显示为第一行。 - 移除原有SKU脚本:如果你之前有单独添加SKU的自定义脚本,需要取消代码中
remove_action的注释,并替换为你原来的SKU显示函数名,避免重复显示SKU。
效果说明
修改后,产品单个页面的附加信息标签内:
- 第一行显示SKU
- 后续会显示产品分类,以及其他默认的产品属性(如尺寸、重量等)
内容的提问来源于stack exchange,提问作者Sjors
相关产品推荐
相关产品推荐

