You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何移除WooCommerce商品循环代码中的重复尺码属性

WooCommerce可变产品尺码去重解决方案

原代码会重复输出同一尺码,原因是不同颜色的同尺码变体都会被遍历输出。可以通过先收集所有尺码、去重后再输出的方式解决:

add_action('woocommerce_before_shop_loop_item_title', 'variations_loop');
function variations_loop() {
    global $product;
    if($product->get_type() == 'variable') {
        // 初始化数组存储尺码
        $size_array = array();
        
        foreach($product->get_available_variations() as $key) {
            // 直接从变体数据中获取尺码,减少产品查询
            $size = $key['attributes']['attribute_pa_size'];
            if(!empty($size)) {
                $size_array[] = $size;
            }
        }
        
        // 去除重复尺码
        $unique_sizes = array_unique($size_array);
        
        // 输出去重后的尺码
        foreach($unique_sizes as $size) {
            echo $size . ' ';
        }
    }
}

改动说明:

  • 新增$size_array数组,用于临时存储所有变体的尺码
  • 直接从$key中提取尺码属性,无需额外调用wc_get_product(),提升代码效率
  • 使用array_unique()函数去除数组中的重复值
  • 最后循环输出去重后的尺码集合

内容的提问来源于stack exchange,提问作者user19818308

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 05:05:14