如何移除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
相关产品推荐
相关产品推荐

