WordPress站点顶部出现随机't'字符,非主题文件,求助排查来源
这种莫名冒出来的单个字符真的挺闹心的,结合你描述的情况(排除主题文件、Git协作推送不带这个字符),可以从这些方向逐一排查:
检查wp-config.php文件:这是最常见的原因之一。有时候在
<?php标签之前,或者?>标签之后(WordPress其实不建议加闭合标签,避免意外输出),可能不小心多敲了个't'。打开这个文件,仔细查看首尾有没有多余的字符或空白,尤其是标签前后的内容。排查插件输出:插件的初始化代码也可能意外输出这个字符。你可以先批量禁用所有插件,看看't'是否消失。如果消失了,再逐个启用插件,找到导致问题的那个插件,然后检查它的PHP文件首尾是否有多余字符,或者有没有错误的
echo 't';之类的代码。检查服务器端全局配置文件:有些服务器会通过
auto_prepend_file配置自动在所有PHP文件前引入某个脚本,如果这个脚本里有多余的't'输出,就会出现在所有页面顶部。你可以创建一个简单的测试文件test.php,内容如下:<?php phpinfo(); ?>访问这个文件,如果顶部也有't',那大概率是服务器端的全局包含文件问题,联系主机商帮忙排查或者检查服务器的PHP配置。
验证WordPress核心文件:虽然可能性较低,但如果核心文件被意外修改,也可能出现这种情况。你可以下载对应版本的WordPress安装包,覆盖
wp-includes和wp-admin目录(注意备份好wp-config.php和wp-content文件夹),之后再查看站点是否恢复正常。排查主题的全局引入文件:除了主题的模板文件,主题的
functions.php里可能引入了其他外部文件,这些文件的首尾如果有多余的't',也会提前输出。另外,有些文本编辑器保存UTF-8文件时会带BOM头,虽然BOM头一般不是't',但也可以检查下主题相关文件的编码是否正确。
结合你给出的代码片段,这个't'出现在模板注释<!-- Template Name: Home -->之前,说明它是在主题模板加载之前就被输出的,所以重点排查前面提到的那些更早执行的代码环节。
内容的提问来源于stack exchange,提问作者Sarah Lesh

