当前位置:首页>技术学院>开源教程>WordPress升级后白屏、按钮失效的排查清单

WordPress升级后白屏、按钮失效的排查清单

WordPress 升级后白屏、后台按钮点不动、页面样式全乱——这三种情况占了升级故障的九成。这篇文章给出按顺序执行的排查步骤,绝大多数情况在十分钟内能定位。

一、升级前必须做的两件事

如果还没升级,先做这两步,出了问题能十分钟内恢复原状:

  1. 备份数据库。用 phpMyAdmin 导出,或者主机面板的备份功能。别只备份文件——升级出问题八成在数据库结构上。
  2. 确认 PHP 版本。后台 → 工具 → 站点健康 → 信息 → 服务器,看 PHP 版本。WordPress 6.x 建议 PHP 8.0 以上,7.4 已经停止安全支持。

已经升级出问题了?直接跳第二节。

二、白屏 / HTTP 500:先拿到真实错误

WordPress 默认不显示错误,所以白屏看不到原因。打开调试模式:

编辑 wp-config.php,把 WP_DEBUG 那行改成:

这样错误不会显示在页面上(避免暴露给访客),而是写进 wp-content/debug.log。刷新一次页面,然后看这个文件末尾:

注意:排查完记得把 WP_DEBUG 改回 false,否则日志会越滚越大,而且可能泄露路径信息。

连 wp-config.php 都进不去的情况

如果 FTP/SSH 都没有,只能用主机面板的文件管理器。如果连这个都没有,联系主机商。

常见 500 错误对照

日志里的关键词 原因 处理
Allowed memory size exhausted 内存不足 wp-config.php 加 define('WP_MEMORY_LIMIT', '256M');
Call to undefined function PHP 版本太低,或文件不完整 升 PHP 版本;重新下载 WordPress 覆盖 wp-includes/
Cannot redeclare function 插件或主题重复定义函数 禁用最近装的插件
syntax error, unexpected 某个 PHP 文件被改坏了 看日志里的文件路径和行号,还原那个文件
Maximum execution time exceeded 升级卡在数据库更新 见第六节

三、后台能进,但按钮点不动

典型表现:点「添加媒体」没反应、可视化/文本切换失效、菜单的「显示选项」点不开、文章列表的批量操作下拉打不开。

这类问题几乎都是 JavaScript 冲突,不是 PHP 错误。因为页面能正常渲染,只是 JS 没跑起来。

第一步:看控制台

F12 → Console,刷新页面,看有没有红色的报错。常见的有:

  • jQuery is not defined —— jQuery 没加载,或加载顺序错了
  • $(...).xxx is not a function —— jQuery 版本不兼容(主题用了老 API,新 jQuery 移除了)
  • Uncaught SyntaxError —— 某个 JS 文件被改坏,或压缩时出错
  • Failed to load resource: 404 —— 某个 JS 文件路径变了

第二步:排除插件

把所有插件停用,看问题是否消失。如果消失,逐个启用,启用到哪个出问题就是它。

后台点不动时怎么停用插件?两种办法:

办法 A:用 FTP 把 wp-content/plugins 整个目录改名成 plugins-off,WordPress 会自动停用所有插件。排查完改回来。

办法 B:直接改数据库,把 wp_options 表里的 active_plugins 值改成一个空数组:a:0:{}。

第三步:一个真实的历史案例

WordPress 4.3.1 发布时,简体中文语言包有一个翻译字符串损坏,导致后台「添加菜单项」区域的 JS 报错,整片 UI 点不动。当时的解决办法是替换 wp-content/languages/admin-zh_CN.mo,或者在主题里挂一个 filter 覆盖那条翻译。

这个具体 bug 早就修了,但它揭示的排查方向一直有效:如果核心功能失效、控制台报的是翻译相关的错、而且只在中文本地化环境出现,去检查语言包。

现在的做法:

  1. 后台 → 更新 → 重新安装「简体中文」语言包
  2. 或者用 FTP 删掉 wp-content/languages/ 下的 .mo 文件,让 WordPress 重新下载

临时应急可以在 wp-config.php 里把语言切回英文,确认问题是否由本地化引起:

四、页面样式全乱 / 布局错位

升级后样式乱了,按这个顺序查:

  1. 清缓存。主题缓存、插件缓存、CDN 缓存、浏览器缓存,四层都可能。先按 Ctrl+Shift+R 强刷,再清 CDN。
  2. 看是不是 CSS 合并压缩导致的。很多主题有「合并 CSS/JS」选项,升级后合并出的文件可能包含旧代码。关掉合并功能试一次。
  3. 检查子主题。父主题升级后如果改了 HTML 结构或 CSS 类名,子主题里覆盖的样式就会失效。这是升级后样式错位最常见的原因。
  4. 看是不是插件注入的样式失效了。比如页面构建器(Elementor、WPBakery)升级后旧版块需要重新生成 CSS,后台一般有「重新生成 CSS」的按钮。

五、插件冲突的标准定位法

前面提过「全部停用再逐个启用」,实际操作时有个更高效的做法:

  1. 停用一半插件,看问题是否消失
  2. 消失 → 问题在停掉的那一半里,再对那一半重复步骤 1
  3. 没消失 → 问题在留用的那一半里,对那一半重复

这叫二分法,20 个插件最多 5 轮就能定位(而不是逐个试 20 次)。

如果不想在线上站折腾,装一个 Health Check & Troubleshooting 插件,它能在「不影响访客」的模式下模拟停用所有插件,只有你自己看到故障状态。

六、升级卡在「数据库更新」

后台提示「数据库更新需要执行」但点了没反应,或者转圈很久后报超时:

  1. 先去看 wp_options 表里的 db_version 值,和 wp-includes/version.php 里的 $wp_db_version 对比。两个值不一致说明升级没跑完。
  2. 访问 https://你的域名/wp-admin/upgrade.php,手动触发升级
  3. 如果一直超时,多半是数据库太大或有慢查询。加长执行时间:define('WP_MEMORY_LIMIT','256M'); 并让主机商临时放开 max_execution_time
  4. 还不行就用 WP-CLI:wp core update-db,命令行不受 web 超时限制

七、回滚:出问题时怎么退回去

WordPress 没有「一键降级」。真要回滚,得靠升级前的备份:

  1. 恢复数据库(这一步必须在恢复文件之前,因为新版数据库结构可能不兼容旧代码)
  2. 恢复 wp-content 目录(主题和插件)
  3. 恢复 WordPress 核心文件(wp-admin、wp-includes、根目录 php 文件)

顺序很重要:先库后文件。反过来的话,旧代码连上新库,可能因为字段缺失直接崩。

部分主机(如 SiteGround、Kinsta)提供自动备份和一键还原,这种情况下直接点还原最省事。

八、升级后的检查清单

  1. 首页、文章页、分类页、搜索结果页各打开一次
  2. 后台发一篇测试草稿,确认编辑器、媒体库、发布流程正常
  3. 移动端打开首页,确认没有布局错位
  4. 提交表单(评论、联系表单)测试一次
  5. 看 debug.log 有没有新的 warning
  6. 关掉 WP_DEBUG
  7. 清一次全站缓存

九、预防:让下次升级不出事

  • 别一有更新就点。小版本(如 6.7 → 6.7.1,安全修复)可以立即升;大版本(6.7 → 6.8)等一两周,让插件作者跟上。
  • 先在测试站升。复制一份站点到子域名或本地(用 Duplicator、All-in-One WP Migration),在副本上升级验证,没问题再动线上。
  • 关注插件兼容性。后台 → 工具 → 站点健康,能看到「插件与当前 WordPress 版本不兼容」的提示。
  • 别用「一键升级全部」。核心、主题、插件分开升,出问题能立刻知道是谁引起的。

最后一句:升级出问题不可怕,可怕的是没备份。只要数据库和文件都有备份,任何升级故障都能退回去,最多损失半小时。

声明:本站文章如无特别说明均为原创或经授权整理,转载须注明出处;涉及第三方信息和资源请以官方页面为准,如有侵权请联系处理。
开源教程

WordPress单行上翻公告代码(无jQuery版)

2015-7-9 22:48:09

开源教程

WordPress主题CSS调试的4种方法(含子主题完整代码)

2015-11-1 17:01:13