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

WordPress站点DOCTYPE不显示及UTF-8 BOM(/ufeff)问题求助

解决WordPress中DOCTYPE丢失、页面空白及隐藏BOM字符问题

这个问题我之前帮好几个开发者处理过,根源非常明确——**UTF-8 BOM(字节顺序标记)**在搞鬼!你看到的/ufeff和&#65279其实都是BOM的不同表现形式:它是一个隐藏的字节序列,当文件以「UTF-8带BOM」编码保存时会被插入到文件开头,浏览器解析时会把它当成普通文本输出,不仅会挤掉你的<!DOCTYPE html>声明,还会在页面中产生莫名的空白。

下面是分步解决方案:

  • 用Notepad++彻底移除BOM
    你之前改UTF-8没解决问题,是因为Notepad++默认的「UTF-8」选项其实是带BOM的。正确操作:

    1. 打开header.php文件
    2. 顶部菜单选择「编码」→「转为UTF-8无BOM编码」
    3. 保存文件后刷新页面测试
      注意:别只改header.php,还要检查主题的其他核心文件(比如functions.php、index.php),甚至插件的文件——任何带BOM的文件被WordPress加载时,都会把BOM输出到页面开头。
  • 用其他编辑器验证修复
    如果Notepad++操作后仍有问题,可以换用Sublime Text或VS Code确认:

    • Sublime Text:打开文件后看右下角的编码标识,如果显示「UTF-8 with BOM」,点击它选择「UTF-8」保存
    • VS Code:左下角点击编码标识,选择「通过编码保存」→「UTF-8」,同时在设置中开启「files.trimTrailingWhitespace」避免多余空白
  • 排查主题/插件的输出钩子
    有时候BOM不是来自header.php本身,而是通过wp_head这类钩子输出的:

    1. 暂时切换到WordPress默认主题(比如Twenty Twenty-Three),如果问题消失,说明是当前主题的文件有问题
    2. 禁用所有插件,逐个启用排查,看是否是某个插件的文件带BOM导致的
  • 服务器端缓冲设置(可选)
    如果上述方法都无效,可以检查PHP配置中的output_buffering是否开启——开启输出缓冲可以避免提前输出BOM字符,但这只是临时 workaround,建议还是从文件编码根源解决。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 04:06:53