核心排查思路:
白屏的根本原因是 PHP 代码执行时遇到了一个致命错误,导致 PHP 脚本无法继续执行,并直接终止了输出,由于错误在 display_errors 被设置为 Off 的情况下,或者错误发生得太早以至于根本没有机会输出,所以你才看不到任何错误信息。

(图片来源网络,侵删)
我们的目标就是找到并解决这个致命错误。
第一步:紧急恢复(让网站先能访问)
在排查具体原因之前,最重要的是先让网站恢复正常,避免影响用户体验和业务。
-
启用 FTP/SFTP 或文件管理器: 这是最快、最有效的方法,通过 FTP 客户端(如 FileZilla)或你的主机控制面板里的文件管理器,连接到你的网站服务器。
-
重命名插件文件夹:
(图片来源网络,侵删)- 找到你的 WordPress 安装目录下的
wp-content文件夹。 - 在
wp-content文件夹中,找到plugins文件夹。 - 将
plugins文件夹重命名为plugins_old或plugins_deactivated。 - 原理: WordPress 无法加载不存在的插件文件夹,因此会自动禁用所有插件,很多时候,WSOD 就是由某个有问题的插件引起的。
- 找到你的 WordPress 安装目录下的
-
重命名主题文件夹:
- 如果重命名插件文件夹后网站恢复正常,说明是插件问题,如果还是白屏,那么问题很可能出在主题上。
- 同样在
wp-content文件夹中,找到themes文件夹。 - 将当前正在使用的主题文件夹(
twentytwentythree)重命名为twentytwentythree_old。 - 原理: WordPress 会自动回退到默认主题(如 Twenty Twenty-Four),如果网站恢复正常,说明就是你的主题有问题。
-
检查
wp-config.php文件:- 如果以上两步都不行,问题可能出在
wp-config.php文件,这个文件是 WordPress 的核心配置文件。 - 通过 FTP 下载
wp-config.php文件到你的电脑。 - 检查文件最后几行,特别是
define('WP_DEBUG', true);这一行,如果这行代码有语法错误(比如缺少分号、引号不匹配等),就会导致白屏。 - 检查你最近是否在文件中添加了任何自定义代码,如果有,请先注释掉或删除。
- 将修改后的文件重新上传到服务器,覆盖原文件。
- 如果以上两步都不行,问题可能出在
完成这一步后,你的网站有很大概率已经恢复正常。 我们就可以针对具体原因进行排查了。
第二步:显示错误信息(找到问题根源)
网站恢复后,我们需要开启错误日志,让 WordPress 把“病因”告诉我们。

(图片来源网络,侵删)
-
启用 WP_DEBUG 模式:
- 打开
wp-config.php文件。 - 找到这行:
define('WP_DEBUG', false); - 将其修改为:
define('WP_DEBUG', true); define('WP_DEBUG_LOG', true); define('WP_DEBUG_DISPLAY', false); - 解释:
WP_DEBUG, true: 开启调试模式。WP_DEBUG_LOG, true: 将所有错误记录到一个日志文件里,而不是直接显示在页面上(避免再次白屏)。WP_DEBUG_DISPLAY, false: 禁止在网页前端显示错误信息,保持网站正常访问。
- 打开
-
查看错误日志:
- 错误日志通常生成在
wp-content文件夹下,文件名为debug.log。 - 通过 FTP 下载这个文件,用记事本或代码编辑器打开。
- 文件的最下面几行就是最新的错误信息,仔细阅读这些信息,它会告诉你哪个文件的哪一行代码出了什么类型的错误。
- 错误日志通常生成在
常见的错误类型和解决方法:
-
Fatal error: Allowed memory size exhausted (内存耗尽)
- 原因: PHP 脚本尝试分配的内存超过了服务器设定的上限(通常是 64MB 或 128MB)。
- 解决方法:
- 在
wp-config.php文件中,在/* That's all, stop editing! Happy publishing. */这行之前,添加以下代码来增加内存限制:define('WP_MEMORY_LIMIT', '256M'); - 如果不行,可能需要联系你的主机服务商,提高服务器的
memory_limit配置。
- 在
-
Fatal error: Call to undefined function... (调用未定义的函数)
- 原因: 通常是某个插件或主题试图调用一个不存在或不兼容的 PHP 函数,常见于 PHP 版本升级后,旧代码使用了新版本已废弃或移除的函数。
- 解决方法:
- 根据错误日志,定位到是哪个插件或主题。
- 如果是插件,去更新或删除它。
- 如果是主题,去更新它,或者联系主题开发者。
- 如果确定是 PHP 版本问题,你可能需要将 PHP 版本回退到兼容的版本,或要求插件/主题开发者进行更新。
-
Parse error: syntax error... (语法错误)
- 原因: 在某个 PHP 文件中(如
functions.php、某个插件文件或wp-config.php)存在语法错误,比如括号不匹配、分号缺失等。 - 解决方法:
- 根据错误日志,定位到具体的文件和行号。
- 通过 FTP 下载该文件,检查并修正语法错误,如果你不熟悉代码,可以找专业人士帮忙。
- 这就是为什么在第一步要检查
wp-config.php,因为它是一个常见的“语法错误”制造者。
- 原因: 在某个 PHP 文件中(如
-
Fatal error: Uncaught Error: Class "Some_Class" not found
- 原因: 和函数未定义类似,是某个类没有被正确加载或定义,通常也是插件或主题代码不兼容造成的。
第三步:深度排查(如果问题依然存在)
如果以上方法都不能解决问题,可以尝试以下更深入的步骤。
-
检查 PHP 和 MySQL 版本兼容性:
- WordPress 对 PHP 和 MySQL 版本有最低要求,如果你最近升级了服务器环境,而 WordPress 或其插件/主题没有跟上,就可能导致白屏。
- 解决方法: 登录你的主机控制面板,检查当前的 PHP 和 MySQL 版本,访问 WordPress 官方要求页面 确认兼容性,如果不兼容,请联系主机服务商回滚版本或升级 WordPress 核心。
-
检查
.htaccess文件:.htaccess文件(位于 WordPress 根目录)是 Apache 服务器的配置文件,错误的规则可能导致网站无法访问。- 解决方法:
- 通过 FTP 备份并重命名
.htaccess文件(.htaccess_old)。 - WordPress 会自动生成一个新的、正确的
.htaccess文件,如果网站恢复正常,说明就是旧文件的问题。
- 通过 FTP 备份并重命名
-
恢复核心文件:
- 有时 WordPress 核心文件可能因为某些原因损坏或丢失。
- 解决方法:
- 访问 WordPress.org 官网,下载一个全新的 WordPress 安装包。
- 解压后,通过 FTP,用新下载包里的
wp-admin和wp-includes文件夹覆盖你网站服务器上对应的文件夹。 - 注意: 不要覆盖
wp-content文件夹,否则你的主题、插件和上传的媒体文件都会丢失!
总结与预防
| 问题类型 | 常见原因 | 解决方案 |
|---|---|---|
| 插件冲突 | 新安装或更新的插件有 bug。 | 重命名 plugins 文件夹,逐个激活插件排查。 |
| 主题问题 | 主题代码错误、不兼容或损坏。 | 重命名当前主题文件夹,切换到默认主题。 |
| PHP 内存不足 | 执行复杂任务时内存耗尽。 | 在 wp-config.php 中增加 WP_MEMORY_LIMIT。 |
| 代码语法错误 | wp-config.php 或主题/插件中的 PHP 代码有误。 |
检查语法,修正错误。 |
| 文件损坏 | WordPress 核心文件丢失或损坏。 | 恢复核心文件。 |
| 服务器配置问题 | .htaccess 错误,PHP/MySQL 版本不兼容。 |
重命名 .htaccess,检查并调整服务器环境。 |
| 数据库错误 | 数据库损坏或查询错误。 | 联系主机服务商修复数据库。 |
如何预防?
- 定期备份: 这是最重要的!定期备份你的网站文件和数据库,一旦出问题,可以快速恢复。
- 更新管理: 保持 WordPress 核心、主题和插件都更新到最新稳定版,更新前可以先在测试环境(如 Staging)进行。
- 使用高质量的主题和插件: 从官方市场或信誉良好的开发者处购买,避免使用来源不明的、粗制滥造的产品。
- 使用 WordPress Staging 环境: 如果你的主机支持,可以在正式上线前,在一个克隆的网站上测试所有更改。
- 启用维护模式: 在进行重大更改(如主题切换、大量插件安装)前,可以安装一个“维护模式”插件,给访客一个友好的提示。
按照以上步骤,绝大多数 WordPress 白屏问题都能得到解决,祝你顺利!
