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

如何修改代码实现WooCommerce指定属性值单独输出为列表项

WooCommerce 指定属性多值列表输出修复方案

问题原因

  • WooCommerce 提供的WC_Product::get_attribute()方法默认返回逗号拼接的属性值字符串,而非单值数组,直接拼接标签会把多个值放在同一个<li>内
  • 原代码初始化$output为数组,但后续直接覆盖赋值为字符串,缺失多值拆分的处理逻辑

修复后代码

global $product;

if ( $product ) {
    $attributes = array( 'gyogynovenyek' );
    $output     = array();

    foreach ( $attributes as $attribute ) {
        $taxonomy = 'pa_' . $attribute;
        $values   = $product->get_attribute( $taxonomy );

        if ( ! empty( $values ) ) {
            // 将逗号分隔的属性值拆分为单值数组
            $value_list = explode( ', ', $values );
            // 遍历每个属性值单独生成li标签
            foreach ( $value_list as $single_value ) {
                // 转义处理保证输出安全,符合WordPress编码规范
                $output[] = '<li>' . esc_html( $single_value ) . '</li>';
            }
        }
    }
    
    // 存在属性值时输出完整的ul包裹结构
    if ( ! empty( $output ) ) {
        echo '<ul>' . implode( '', $output ) . '</ul>';
    }
}

修改说明

  • 新增字符串拆分逻辑:用explode(', ', $values)把逗号拼接的属性值拆分为独立单值数组
  • 遍历单值数组,为每个属性值单独生成<li>标签存入输出数组
  • 最终输出时给所有列表项包裹<ul>标签,完全匹配要求的输出结构
  • 新增esc_html()转义处理,避免XSS安全风险

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 03:18:03