【问题标题】:Cannot modify header information - WSOD无法修改标头信息 - WSOD
【发布时间】:2017-10-30 05:02:50
【问题描述】:

wp-admin 或仪表板wsod

网站看起来不错,只有仪表板wsod

WP_DEBUG 设置为true

没有显示错误。

然后我在mu-plugins 中添加no-white-screen.phpref. suggested

这些是我的错误:

无法修改标头信息 - 标头已发送(输出开始于 /home/content/58/11808258/html/FFG/wp-includes/pomo/mo.php:2) 从警告回溯 在 /home/content/58/11808258/html/FFG/wp-includes/functions.php [第 1141 行]:
[line ?] 调用 process_error() /home/content/58/11808258/html/FFG/wp-includes/functions.php [第 1141 行] 调用 header_remove() /home/content/58/11808258/html/FFG/wp-admin/admin.php [第 33 行] 调用 nocache_headers() /home/content/58/11808258/html/FFG/wp-admin/index.php [第 10 行] 调用 require_once()

还有更多类似的错误,但我不会添加这些,我不想发送垃圾邮件。

我没有添加任何新插件或进行任何主题更改,无论如何我已经停用它们(通过重命名 ftp 文件夹)并且问题仍然存在。

这是报告错误的 function.php 部分:

    function nocache_headers() {
    $headers = wp_get_nocache_headers();
    unset( $headers['Last-Modified'] );
    // In PHP 5.3+, make sure we are not sending a Last-Modified header.
    if ( function_exists( 'header_remove' ) ) {
        @header_remove( 'Last-Modified' );
    } else {
        // In PHP 5.2, send an empty Last-Modified header, but only as a
        // last resort to override a header already sent. #WP23021
        foreach ( headers_list() as $header ) {
            if ( 0 === stripos( $header, 'Last-Modified' ) ) {
                $headers['Last-Modified'] = '';
                break;
            }
        }
    }
    foreach ( $headers as $name => $field_value )
        @header("{$name}: {$field_value}");
}

“错误”是由这两行产生的

@header("{$name}: {$field_value}"); 

@header_remove( 'Last-Modified' );

非常感谢任何帮助!

【问题讨论】:

  • 您在重命名插件后是否进入了 WP-Admin 中的插件页面。建议这样做,因为它会强制系统完全停用插件。当您的站点或服务器运行任何类型的内存缓存例程时尤其如此,例如 memcache(d)。
  • 由于 WSOD,我无法进入 wp-admin 插件仪表板。我尝试单独重命名所有插件以及插件目录,主题和主题目录也是如此。 WSOD 仍然存在这些错误。谢谢你的帮助:)!
  • 一次性全部禁用。仅在 wpadmin 中重新启用它们一次。如果还是不行,请下载新的 WordPress 副本并通过 ftp 上传文件。
  • 是的,没有骰子,重新安装。再次感谢!
  • 只需删除 wp-config 和您的主题和插件以外的 wp 文件,然后上传 wp 核心文件。无需重新安装 WP。另外,如果无法访问 wp-admin,您是如何禁用主题的?

标签: php wordpress http-headers wsod wp-admin


【解决方案1】:

此错误表明某些代码在页面完成之前正在输出内容。这通常是由 echo 在 WordPress 周期的错误部分(例如,在后台操作/挂钩期间)抛出文本或其他页面组件引起的。

在这个阶段这是一个相当普遍的错误,因此您需要通过消除过程来确定问题的原因。您可以先执行以下操作:

  1. 重命名插件文件夹,以确保所有插件 100% 禁用。将 wp-content/plugins 重命名为 'wp-content/plugins-x' 或类似名称。

如果这恢复了管理员/仪表板访问权限,您可以重命名插件文件夹,然后一一重新激活插件,直到错误返回。至此,你就知道是哪个插件引起的了。

如果这不能让您回到管理员状态,您可能需要对主题文件夹执行类似的操作。

  1. 如果这不能让您回到管理员状态,您可能需要对主题文件夹执行类似的操作。如果重命名插件修复了它,那么您就知道它是导致问题的插件。否则,它会在您的主题中显示一些错误代码。

如果重命名插件可以解决问题,那么您就知道是插件导致了问题。否则,它会建议您的主题中有一些错误的代码。我建议先检查 functions.php 文件,因为这是大多数修补程序通常发生的地方。

特别是,仔细检查您可能添加或自定义的任何代码。

如果您有权访问服务器日志,请查看这些日志,因为它们应该提供有关问题来源或至少发生问题的时间点的更准确信息。

【讨论】:

  • 我已经更新了问题。感谢您的贡献!
  • @JonathanBingham 那么请给我一个赞成票。继续!只有一个。 ;-)
猜你喜欢
  • 2021-11-15
  • 1970-01-01
  • 1970-01-01
  • 2011-08-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多