如何修复“无法修改标头信息 - 标头已发送”错误

已发表: 2021-11-26

大多数 WordPress 错误消息可以让您了解导致网站出现问题的原因。 “警告:无法修改标头信息 - 标头已发送”错误也不例外。 如果 PHP 文件由于其代码中的问题而无法执行,您将遇到此消息。

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

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

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

正如我们之前提到的,当您的站点的一个.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代码段之前或结束?>标记之后的空格
  • PHP 标头函数之前的 HTML 块
  • 在 PHP 标头函数之前添加printecho语句
  • 插件代码的问题

修复这些类型的错误要求您至少对修改 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 凭据。 在大多数情况下,您应该能够在托管面板中找到它们。

需要为您的电子商务网站提供快速、可靠且完全安全的托管服务? Kinsta 提供所有这些以及来自 WooCommerce 专家的 24/7 世界级支持。 查看我们的计划

如果您使用 Kinsta,您可以访问 MyKinsta,在站点下选择您的网站,然后单击其信息选项卡。

MyKinsta 中的 SFTP/SSH
MyKinsta 中的 SFTP/SSH。

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

以下是 WordPress文件夹内部的快速浏览。

查看 WordPress 根文件夹
WordPress 根文件夹。

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

在根文件夹中找到 wp.config 文件
单击 wp.config 文件。

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

导航到错误消息所在的行
查找带有错误消息的行。

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

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

看到此错误消息? 这篇文章有 2 种有保证的方法来修复它点击鸣叫

概括

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

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

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

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

修复此错误时仍有问题? 请在下面的评论中与我们的社区分享您的经验!