WordPress 更新后网站突然崩了,多半是某个插件、主题或 PHP 版本不兼容。别急着重装,先按「定位 → 隔离 → 回退」三步走,通常十分钟内能恢复。
第一步:定位是哪里出了问题
更新分三种:WordPress 核心、主题、插件。先判断症状对应哪一类:
| 症状 | 最可能 culprit | 快速验证 |
|---|---|---|
| 前台白屏 / 500 | 刚更新的插件或主题 | 重命名 wp-content/plugins 目录测试 |
| wp-admin 进不去 | 核心文件损坏 / 主题 functions.php 报错 | 切换默认主题、开 WP_DEBUG |
| 维护模式不消失 | .maintenance 文件残留 | FTP 删除站点根目录 .maintenance |
| 特定页面布局乱 | 页面构建器插件不兼容 | 禁用该插件后刷新 |
开 debug 是最快的定位方式。在 wp-config.php 里加:
define('WP_DEBUG', true);
define('WP_DEBUG_LOG', true);
define('WP_DEBUG_DISPLAY', false);
刷新一次报错页面,然后看 wp-content/debug.log 第一行 fatal error,它会直接指出哪个文件的哪一行。
第二步:隔离故障组件
如果还能进后台,到「插件」里批量停用所有插件,再一个个启用,启用到哪个崩了就是哪个。进不了后台就用 FTP 或 SSH:
# 一次性停用所有插件(不会丢设置)
mv wp-content/plugins wp-content/plugins-off
mkdir wp-content/plugins
mv wp-content/plugins-off/* wp-content/plugins/
# 此时所有插件已停用,再逐个移回去测试
主题冲突也类似,临时切到 Twenty Twenty-Four:
# 通过 WP-CLI 切换主题
wp theme activate twentytwentyfour
如果是核心更新后出问题,先不要动 wp-content 和 wp-config.php,只替换 wp-admin 和 wp-includes。
第三步:安全回退
插件 / 主题回退:到 wordpress.org 插件页,点「Advanced View」选旧版本下载 zip。后台「插件 → 安装 → 上传」覆盖,数据库设置不会丢。WP Rollback 插件也能一键回退。
核心回退:去 https://wordpress.org/download/releases/ 下载上一个版本,解压后只覆盖 wp-admin 和 wp-includes,wp-content 不动。
整站回退:如果你有备份,直接用宝塔 / UpdraftPlus / 主机快照恢复。注意恢复前导出当前数据库,避免丢失更新后产生的新数据。
踩坑实录
上周一台站点更新 WooCommerce 后前台 500,我第一反应是主题不兼容,切了默认主题还是报错。看 debug.log 发现 /wp-content/plugins/seo-pack-pro/seo-pack-pro.php:247 调用了一个 WooCommerce 9.8 里已经删掉的钩子。我直接在 FTP 里把 seo-pack-pro 目录重命名为 seo-pack-pro-bak,站点立刻恢复。然后去插件官网下了 4.2.1 旧版覆盖,故障解决。关键不是盲猜,而是先看 debug.log 给的确切文件路径。
更新前准备与更新后验证
想要更新后不慌,最好养成两个习惯:更新前快照,更新后验证。
更新前清单:
- 主机 / 宝塔 / 插件做一次完整备份
- 记录当前 WordPress、PHP、插件、主题版本号
- 在 staging 环境先跑一遍更新
- 确认关键插件的 “Tested up to” 覆盖你要升级到的 WP 版本
更新后验证:
- 前台首页、文章页、分类页各刷新一次
- 登录后台,尝试保存一篇草稿
- 检查核心功能:结账、表单、搜索、菜单
- 看服务器错误日志 5 分钟内是否有新增 fatal
如果 staging 环境和生产环境配置接近,90% 的更新问题都能在 staging 阶段提前发现。
常见问题
问:更新前必须做哪些准备?
答:备份数据库 + 文件,确认插件与新版 WP 兼容(看 wordpress.org 的 “Tested up to”),最好在测试环境先跑一遍。
问:回退插件后设置会丢吗?
答:不会。设置存在数据库的 option 表里,只要你不删数据库,重新安装或降级同一插件设置都在。
问:没有 debug.log 怎么办?
答:检查 PHP error_log 路径,或临时把 WP_DEBUG_DISPLAY 设为 true 但仅限本地 / 维护模式,别在生产环境直接显示错误。
问:更新后前台正常,后台进不去怎么排查?
答:这种情况多半是主题或插件在 admin 初始化时调用了已废弃的函数。用 FTP 重命名 plugins 目录临时停用所有插件,再逐个恢复;如果还不行,临时把主题切到默认主题。
如果你在 WordPress 回退过程中还遇到别的报错,欢迎在 fenij.com 留言,把 debug.log 关键行贴出来一起查。