如何修复 WordPress 中的“由于意外输出导致 Cookie 被阻止”错误

我们在给 WordPress 用户排查网站问题时,多次遇到“由于意外输出导致 Cookie 被阻止”的错误

这也是一个比较常见问题,可能会阻止登录访问 WordPress 仪表盘,总在关键时刻掉链子。通常,这个错误会在进行一些小调整后出现,例如编辑主题启用插件,找到问题原因还是比较头疼的。但也别担心,这个问题是完全可以修复的。

在本篇文章中,会分享解决这个错误的具体步骤,恢复网站。

什么导致“由于意外输出导致 Cookie 被阻止”错误?

根据我们的经验,当自定义代码片段、WordPress 插件或主题产生意外输出,导致 WordPress 文件无法按正确顺序加载时,就会出现这个错误。

WordPress 在后台运行一系列特定指令让网站正常运作。如果某个过程被打断,WordPress 可能会出现异常行为。

在这种情况下,错误发生是因为 WordPress 无法设置登录 Cookie,就算其余代码加载正常。

错误示例:由于意外输出导致 Cookie 被阻止

这个小问题会带来很大的不便。例如,它可能会阻止管理员和其他用户登录 WordPress 网站。

下面是我们常见的一些导致这个错误的原因:

1. PHP 文件中的额外空白

文件如 wp-config.php 或插件文件中无意添加的空格或空行可能导致此问题。

2. 插件冲突

某些插件可能会输出意外内容,干扰 Cookie 的正常设置。

3. 旧版本的 WordPress 核心、插件或主题

使用旧版本可能导致兼容性问题和错误。

4. 自定义代码

如果最近在网站添加了自定义代码,这可能是导致问题的原因。

5. 主机环境问题

在极少数情况下,服务器配置错误也可能导致此错误。

了解这些原因后,从哪里开始排查问题就有思路了。在接下来的部分中,我们会逐步指导如何修复这些问题。

如何修复“由于意外输出导致 Cookie 被阻止”错误

修复这个错误看起来很棘手,但实际上比想象的要简单。我们从最常见的错误原因开始排查。

1. 检查 PHP 文件中的额外空白

导致此错误的最常见原因之一是 WordPress 文件中的额外空白。这些空白可能出现在 PHP 文件<?php 开头标签之前 ?> 结束标签之后。即使是一个空行,也有可能引发问题。

解决方法:

1. 用 FTP 客户端或主机控制面板中的文件管理工具访问网站文件。

2. 找到 wp-config.php 文件,这是最常见可能出现额外空白的文件之一。

3. 打开文件,确保:

文件开头的 <?php 标签之前没有空行或空格。

文件结尾没有多余的 ?> 标签或其后空行。

4. 保存修改,并刷新网站查看问题是否解决。

如果问题仍未解决

如果问题依然存在,则需要对其他常被编辑的 WordPress 文件重复上述步骤。例如,如果最近编辑或更新了 WordPress 主题,可以检查主题的 functions.php 文件

清理 PHP 代码前的空白通常可以解决问题。

然而,一个 WordPress 网站包含数百个 PHP 文件,其中许多位于插件和主题中,逐一检查和清理它们是不现实的。

接下来判断是否是插件或主题导致了这个错误。

2. 暂时停用所有插件

有时候,插件冲突会在 WordPress 中导致意外输出,从而引发“由于意外输出导致 Cookie 被阻止”的错误。暂时停用所有插件是检查问题是否由插件引起的最快速的方法。

如果可以访问仪表盘

1. 转到 插件 » 已安装插件 页面。

2. 选中所有插件,从批量操作下拉菜单中选择“停用”,然后点击“应用”。

3. 停用所有插件后,尝试登录或刷新页面,检查错误是否已解决。

如果无法访问 WordPress 管理后台:

1. 用 FTP 客户端或主机控制面板的文件管理工具连接到 WordPress 网站。

2. 导航到 wp-content 文件夹。

3. 找到名为 plugins 的文件夹,右键点击并选择“重命名”选项。

4. 将文件夹名称更改为任意名称,例如 plugins.deactivated。

WordPress 会查找名为 plugins 的文件夹来加载已激活的插件。如果找不到这个文件夹,它将无法激活任何插件,并会自动将所有插件设置为停用。

检查问题:

如果错误在停用所有插件后消失,则说明问题由某个插件引起。

逐个重新激活插件,找出触发错误的插件。

确认问题插件后,可以找功能类似的插件替换。

3. 切换到默认的 WordPress 主题

网站的 WordPress 主题也可能导致“由于意外输出导致 Cookie 被阻止”的错误。主题冲突可能是由于过时的代码或自定义内容的意外输出引起的。

步骤 1:切换到默认主题(通过后台操作)

如果可以访问 WordPress 管理后台:

转到 外观 » 主题 页面。

切换默认主题(通常以年份命名,如 Twenty Twenty-Five 或 Twenty Twenty-Four)。如果默认主题已安装,点击“激活”切换到该主题。

如果没有安装默认主题,点击顶部的“添加新主题”按钮,搜索并安装默认主题。

步骤 2:切换到默认主题(通过 FTP 或文件管理器操作)

1. 如果无法访问 WordPress 管理后台:

使用 FTP 客户端或主机文件管理工具连接到网站。

导航到 /wp-content/ 文件夹。

找到 themes 文件夹,右键选择“重命名”,将其更名为 themes-deactivated。右键选择 FTP 客户端的“新建文件夹”选项,命名为 themes,创建一个新的空文件夹。

2. 下载并上传默认主题:

前往 WordPress 官方主题目录,找到默认主题(如 Twenty Twenty-Five 或 Twenty Twenty-Four),并下载到电脑上。解压下载的主题 ZIP 文件,得到主题文件夹。使用 FTP 或文件管理工具,将解压后的主题文件夹上传到你的网站的 themes 文件夹中。

3. WordPress 会自动使用 themes 文件夹中唯一的主题作为默认主题。

检查结果

如果切换到默认主题后错误消失,则说明问题出在之前的主题上。

可以检查主题更新、修复主题代码,或者换一个主题。

4. 使用 WP_DEBUG 模式进行调试

如果问题仍然存在,可以启用 WordPress 的调试模式来帮助识别错误的具体原因。

什么是 WP_DEBUG 模式?

WP_DEBUG 模式是 WordPress 的内置功能,它可以记录错误和警告,帮助你找到导致意外输出的根源。

如何启用 WP_DEBUG 模式

1. 用 FTP 客户端或主机控制面板中的文件管理工具,访问网站的 WordPress 文件。

2. 找到根目录中的 wp-config.php 文件,并打开进行编辑。

3. 找到以下代码行:

/* That’s all, stop editing! Happy publishing. */

在这行代码的上方添加以下代码:

define( ‘WP_DEBUG’, true );
define( ‘WP_DEBUG_LOG’, true );
define( ‘WP_DEBUG_DISPLAY’, false );第一行启用调试模式。

第二行创建一个日志文件以存储错误信息。

第三行防止错误信息显示在网站页面上。

保存文件更改。

检查调试日志

保存更改后,WordPress 会在 /wp-content/ 文件夹中生成一个名为 debug.log 的日志文件。

打开该文件,查看记录的错误和警告信息。

禁用 WP_DEBUG 模式

1. 找到 WP_DEBUG 的定义,将其值设置为 false,如下所示:

define( ‘WP_DEBUG’, false );

2. 禁用调试模式可以防止敏感信息暴露。

如果已尝试上面所有步骤但错误仍然没有解决,那么联系专业的WordPress故障修复团队解决。

Leave a Reply

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