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

如何在PHP代码中插入href链接?实操失败寻求解决方案

搞定PHP翻译函数里插入HTML链接无效的问题

嘿,我来帮你解决这个问题!你遇到的核心问题是在WordPress的__()翻译函数里插入HTML链接时,出现了引号语法冲突,导致代码无法正确执行,链接自然也就显示不出来了。

为啥你的尝试会失败?

你写的代码里,__()的参数用双引号包裹,而<a>标签里的target="_blank"也用了双引号——PHP会把中间的"target="当成字符串的结束标记,直接报语法错误,这是最直接的原因。另外,原代码里的&lt;br/&gt;是HTML转义字符,其实如果要输出正常的换行,直接写<br>或者<br/>就行(只要输出时没有被强制转义)。

几种正确的写法

方法1:转义内部的双引号

把<a>标签里的双引号用反斜杠\转义,这样PHP就不会把它当成字符串的结束符了:

echo '<br/>'.__("Your auction isn't live yet, the admin needs to approve it.<br/>For more info <a target=\"_blank\" href=\"www.website.com\">CLICK HERE</a>.", "AuctionTheme");

方法2:换用单引号包裹翻译字符串

如果你的翻译文本里没有太多单引号冲突(这里只有isn't,可以写成isn\'t),直接用单引号包裹整个翻译文本,内部的双引号就不用转义了:

echo '<br/>'.__('Your auction isn\'t live yet, the admin needs to approve it.<br/>For more info <a target="_blank" href="www.website.com">CLICK HERE</a>.', "AuctionTheme");

方法3:分离文本和HTML(更规范的多语言写法)

如果要做专业的多语言适配,建议把可翻译的文本和HTML标签分开,避免翻译人员不小心破坏标签结构:

// 先定义带占位符的翻译文本
$message = __("Your auction isn't live yet, the admin needs to approve it.<br/>For more info %s.", "AuctionTheme");
// 单独定义链接HTML
$info_link = '<a target="_blank" href="www.website.com">CLICK HERE</a>';
// 用sprintf把链接插入到文本中
echo '<br/>'.sprintf($message, $info_link);

这种方式的好处是,翻译人员只需要处理纯文本,不用碰HTML标签,既安全又符合国际化规范。

额外提醒

  • 记得给href里的URL加上http://或者https://,不然浏览器会把它当成当前网站的相对路径,跳转到错误的地址。
  • 如果你的主题或插件有自动转义HTML的机制,可能需要用wp_kses_post()函数来允许<a>标签的输出,比如:
echo '<br/>'.wp_kses_post(__("Your auction isn't live yet, the admin needs to approve it.<br/>For more info <a target=\"_blank\" href=\"www.website.com\">CLICK HERE</a>.", "AuctionTheme"));

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 07:50:18