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

WordPress中为锚点链接追加URL参数的问题求助

解决方案

问题核心是URL结构规范和参数编码问题:

  • 锚点(#contact)必须放在查询参数之后,否则参数会被浏览器识别为锚点的一部分,服务器无法获取
  • 产品标题含特殊字符时未编码,会导致参数截断或解析错误

修改后的代码如下:

function replace_default_button(){
    // 编码产品标题,确保特殊字符符合URL规范
    $encoded_title = rawurlencode(get_the_title());
    return '<form>
  <button formaction="/?name=' . esc_attr($encoded_title) . '#contact">Contact</button>
</form>';
}

关键说明:

  • rawurlencode():将标题中的空格、中文、特殊符号转换为URL安全编码,避免参数传递失败
  • esc_attr():转义HTML属性内容,防止XSS漏洞和HTML解析错误
  • 正确的URL结构/?name=编码后的标题#contact,浏览器会同时识别查询参数和锚点,实现跳转+传参的需求

如果是替换WooCommerce的加入购物车按钮,需要添加钩子将函数绑定到对应动作:

add_filter('woocommerce_loop_add_to_cart_link', 'replace_default_button');

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 03:51:42