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

WooCommerce多值产品属性pa_ontwerper单独链接实现咨询

解决WooCommerce单品页面多属性值的链接问题

你当前的代码问题在于get_attribute('pa_ontwerper')返回的是逗号分隔的字符串,当属性有多个值时,会把所有值连在一起生成错误的链接。要实现每个值单独链接,需要先拆分字符串,再逐个处理:

修改后的代码示例:

// 获取属性值,得到逗号分隔的字符串
$ontwerper_values = $product->get_attribute('pa_ontwerper');

// 拆分字符串为数组,处理每个值
if (!empty($ontwerper_values)) {
    // 按逗号拆分,同时去掉每个值前后的空格
    $values_array = array_map('trim', explode(',', $ontwerper_values));
    
    // 遍历数组生成每个值的链接
    $links = [];
    foreach ($values_array as $value) {
        // 生成单个值的链接,同时做安全转义
        $links[] = '<a href="https://www.website.nl/attribute/' . esc_attr($value) . '/">' . esc_html($value) . '</a>';
    }
    
    // 用逗号分隔输出所有链接
    echo implode(', ', $links);
}

代码说明:

  • explode(',', $ontwerper_values):把逗号分隔的字符串拆成数组,每个元素对应一个属性值
  • array_map('trim', ...):去掉每个值前后的空格,避免值里带空格导致链接路径错误
  • esc_attr()和esc_html():做安全转义,防止XSS漏洞,符合WooCommerce官方开发规范
  • implode(', ', $links):把多个链接用逗号加空格拼接,保持和原显示格式一致

修改后,当属性有多个值时,每个值都会生成独立的正确链接,比如designer1链接到https://www.website.nl/attribute/designer1/,designer2链接到https://www.website.nl/attribute/designer2/,两者用逗号分隔显示。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 11:15:36