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

WordPress菜单项特殊字符&转义异常问题求助

解决WordPress菜单项&符号被自动转义为&的问题

我来帮你搞定这个头疼的符号转义问题!这种情况大概率和你用的Roots/Sage 10主题有关,不过咱们一步步排查解决:

先确认问题根源

WordPress本身默认是支持在菜单项里直接使用&符号的——后台输入Call & Contact,数据库里会存为Call & Contact,但前台输出时会自动解码回&。但Sage 10因为用了Blade模板引擎,默认会开启HTML自动转义,这就是导致你看到&而不是&的核心原因。

解决方案分这几步来

1. 后台直接输入原始&符号

先检查你是不是在后台菜单项里输入了&?如果是,直接改成输入&试试——WordPress后台会自动处理编码,正常情况下前台应该能正确显示。

2. 修改Sage 10的菜单渲染模板

如果后台输入的是&但前台还是显示&,那肯定是Blade模板的转义在搞鬼。找到Sage主题里渲染菜单的Blade文件(一般在resources/views/navigation/目录下,比如primary.blade.php),把原来的:

{{ $item->title }}

改成:

{!! $item->title !!}

{{ }}是Blade的自动转义输出,{!! !!}会跳过转义,直接输出原始HTML内容,这样就能正确显示&了。

3. 用WordPress过滤器全局处理

如果你不想修改模板文件,可以在主题的functions.php或者自定义插件里添加这段代码,强制解码菜单项标题:

add_filter('nav_menu_item_title', function($title, $item, $args, $depth) {
    // 把HTML实体解码为原始字符
    return html_entity_decode($title);
}, 10, 4);

这个过滤器会在菜单项标题输出前,把&解码回&。

4. 排查插件干扰

偶尔SEO插件、安全插件也会强制转义菜单项内容,你可以暂时禁用所有第三方插件,测试菜单显示是否正常,排查出是哪个插件导致的问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.27 20:28:13