WordPress疑难解答:如何解决在头部先发出警告信息的问题?

导语:我们在访问WordPress站点的时候,有可能会在浏览器中看到一个警告信息:Warning: Cannot modify header information – headers already sent by (output started。那么对于这个问题,我们来看看怎么解决它。英文标题:How do I solve the Headers already sent warning problem?

描述


你在你的浏览器上看到一个警告信息,上面写着说:
Warning: Cannot modify header information – headers already sent by (output started

原因及解决办法


它通常是因为在一个打开的标签之前,有空格、新行,或其他东西,特别是在wp-config.php中。这可能对其他一些文件来说也是如此,所以请检查错误消息,因为它会列出发生错误的特定文件名(请参见下面的“解释错误信息”)。你最好的选择就是从最新的备份文件中替换失效的文件,或重新下载的WordPress来替换失效的文件。如果你不准备这样做,请按照下面的步骤在处理。

这是因为你不能看到任何东西,并不意味着PHP也是同样看不到。

  1. 通过FTP或者你的主机控制面板提供的文件管理器,下载错误消息中提到的文件。
  2. 在纯文本编辑器中打开该文件(不是用微软的Word或类似的,记事本或BBEdit是可以的)。
  3. 请检查第一个字符是关闭标签。在它之后没有空行或空格。
  4. 在保存之前,使用“另存为”对话框,请确保文件编码不是UTF-8 BOM ,而是简单的UTF-8,或没有任何BOM的后缀。

要确认文件的结尾,请这样做:

  1. 把光标放在?和>之间
  2. 现在按下你的计算机上的删除键MAC用户注意:在一台电脑上使用“删除”键将字符删除到光标的右边。这是关键的地方。
  3. 保持键按下状态
  4. 至少15秒
  5. 现在键入 >
  6. 在没有按任何其他键的状态下保存
  7. 如果你按了其他键,你会把问题又带回来。
  8. 不必要的代码块中不要放入代码,把代码都放在一个单一的PHP代码块中。
    错误的做法:
    <?php
    some code;
    ?>
    <?php
    some other codes;
    ?>
    正确的做法:
    <?php
    code;
    some other code;
    ?>

编辑和保存文件后将文件上传到你的服务器上。

注意


请检查文件的编码。如果这个文件的编码是带有BOM后缀的UTF-8,则BOM是看作一个开始输出的字符。

解释错误信息


如果错误消息陈述:Cannot modify header information – headers already sent by (output started at /path/blog/wp-config.php:34) in /path/blog/wp-login.php on line 42,那么问题在wp-config.php的34行,不在wp-login.php的42行。在这样情况下,wp-login.php的42行是一个受害者,它是被wp-config.php的34行多余空格所影响。

如果错误消息陈述:Warning: Cannot modify header information – headers already sent by (output started at /path/wp-admin/admin-header.php:8) in /path/wp-admin/post.php on line 569,那么问题在admin-header.php的8行,不在post.php的569行。在这样情况下,post.php的569行是一个受害者,它是被admin-header.php的8行多余空格所影响。

可能导致错误的其他问题


假设你已经使用了这个函数: wp_redirect(),或试图在header之后使用报头重定向(或有任何内容发送),都将会弹出错误信息。如果必须使用,请使用javascript重定向来代替。

结束


没想到一个小小的问题,会有这么多的可能。你学会了吗?请记住它,以免你自己会遇到这样的情况发生。

发表评论

邮箱地址不会被公开。 必填项已用*标注