如何修复无法修改标头信息错误

错误类型:
WP内部错误
错误名称:
无法修改标头信息
英文名称:
Cannot modify header information
错误描述:
当您站点的.php文件之一无法执行时,您将遇到此错误。

如何修复无法修改标题信息错误

大多数WordPress错误消息让您了解是什么导致了您的网站出现问题。“警告:无法修改标头信息 – 标头已经发送( Warning: cannot modify header information – headers already sent by”)”错误也不例外。如果PHP文件由于代码问题而无法执行,您将遇到此消息。

“无法修改标头信息”错误有多种潜在原因。幸运的是,消息本身会告诉您是哪个文件导致了问题。它甚至指向包含问题的代码行。

在本文中,我们将讨论此错误及其原因。然后,我们将介绍两种解决问题的方法。

  1. 什么原因导致“无法修改标头信息 – 标头已发送”错误
  2. 如何解决“警告:无法修改标头信息 – 标头已发送”错误(2种方法)

什么原因导致“无法修改标头信息 – 标头已发送”错误

正如我们之前提到的,当您站点的.php文件之一无法执行时,您将遇到此错误。WordPress的依赖于.php文件,如WP-config.php文件functions.php中,其核心功能。

如果您的网站需要加载的.php文件之一存在问题,您将看到如下所示的错误消息:

Warning: Cannot modify header information - headers already sent by (output started at /home/public_html/wp-config.php:#) in /home/public_html/wp-includes/file-example.php on line 33

幸运的是,“无法修改标头信息”错误提供了大量信息,使故障排除相对简单。该消息将指向两个文件 – 第一个包含问题,这会阻止第二个文件的执行。

在错误消息的末尾,您会看到一个显示“第XX行”的部分。它显示了导致问题的特定代码的位置。

通常,PHP代码中的问题很容易修复。可能触发错误消息的一些常见原因包括:

  • <?php代码段之前或?>结束标记之后的空格
  • 一个HTML块之前的PHP标头函数
  • printecho在PHP标头函数之前添加的语句
  • 插件代码的问题

修复这些类型的错误要求您至少对修改PHP代码有一定的熟悉度。您不需要自己添加任何代码。

不过,您可能需要一些额外的帮助来确定问题。如果问题与PHP标头函数之前的空格或语句无关,则尤其如此。

如何解决“警告:无法修改标头信息 – 标头已发送”错误(2种方法)

有两种方法可以解决“无法修改标头信息 – 标头已经发送”错误。第一种方法不需要您退出WordPress仪表盘。

但是,如果您无法访问仪表盘或使用WordPress,则第二种策略使用FTP/SFTP。

让我们从第一种故障排除方法开始。

1.使用插件/主题编辑器修复错误或更换插件

当您遇到“无法修改标头信息 – 标头已经发送”错误时,您需要做的第一件事是打开导致问题的文件。然后,找到消息指示的行。

例如,如果您看到如下错误,则意味着您需要查看主题的functions.php文件:

Warning: Cannot modify header information - headers already sent by (output started at /home/public_html/wp-content/themes/twentytwentyone/functions.php:#) in /home/public_html/wp-includes/file-example.php on line 1

在这种情况下,您可以使用WordPress主题编辑器找到问题的根源 。要访问它,请转到外观>主题编辑器

进入后,使用右侧的菜单选择您需要访问的文件。

主题函数文件 (functions.php)

主题函数文件 (functions.php)

如果仔细观察,您会注意到<?php标签前有几个空格。错误消息本身指向第一行。因此,这告诉您空格是问题的根源。

在此示例中,您所要做的就是删除空格并单击Update File。现在尝试重新加载您的网站,错误应该消失了。

您可以使用WordPress插件编辑器(插件 >插件编辑器)应用相同的过程。如果错误消息指向错误的插件文件,则此方法适用。

或者,您可能会遇到指示WordPress插件目录中的文件之一的错误。在这种情况下,您可以删除并重新安装该插件。在大多数情况下,这将为您解决问题。

但是,请记住,您可能会丢失该插件的配置,具体取决于您使用的工具。因此,您可能需要再次设置加载项。

2. 通过FTP/SFTP编辑问题文件

在某些情况下,“无法修改标头信息 – 标头已经发送”错误的来源不会存在于您可以使用WordPress主题或插件编辑器访问的文件中。或者,您可能正在使用非WordPress网站。

在这些情况下,最好的选择是使用FTP/SFTP访问问题文件。为此,您需要使用FTP或SFTP客户端, 例如FileZilla

您还需要访问您网站的FTP/SFTP凭据。在大多数情况下,您应该能够在您的主机面板中找到它们。

获得凭据后,使用FTP或SFTP客户端连接到您的网站。您需要找到站点的根文件夹。通常,它的名称应该是root、public_htmlpublic或您自己站点的名称。

这是一个快速浏览WordPress根文件夹内部的样子。

WordPress根文件夹

WordPress根文件夹

继续并找到“无法修改标头信息 – 标头已经发送”错误指示的文件。例如,如果问题是public/wp-config.php,请右键单击文件并选择查看/编辑选项。

编辑wp.config文件

编辑wp.config文件

该选项将使用您的默认文本编辑器打开所选文件。打开文档后,通过导航到错误消息指向的行来定位问题。

查找包含错误消息的行

查找包含错误消息的行

 

如果您无法发现错误,您可能需要咨询有处理 PHP 文件经验的人。但是,假设您正在处理空白问题或PHP标头之前的语句。在这种情况下,您应该能够自己解决问题。

完成后,保存对文件的更改并关闭FTP/SFTP客户端。尝试重新访问您的网站,错误应该消失了。

小结

“警告:无法修改标头信息 – 标头已经发送”错误可能令人生畏,因为它输出了一条长消息。但是,该详细的错误消息使此错误的故障排除相对简单。与其他问题不同,这个问题足够礼貌,可以告诉您是哪个文件引起的,以及您需要查看哪一行代码。

根据导致错误的文件,您可以通过两种方式对其进行故障排除:

  1. 使用插件/主题编辑器修复错误或更换插件。
  2. 通过FTP/SFTP客户端编辑问题文件。

查找此错误的来源很简单。但是,如果您不熟悉PHP,修复它可能是一个问题。

评论留言