首页 > Wordpress > 正文

区块编辑器保存白屏:四步救回

fenij 2026-09-17 1 Wordpress

点完”更新”却跳回一片白?区块编辑器保存后白屏,根因几乎都在后端:写入流程里的致命错误、内存爆掉、或 REST 返回了非 JSON。先给结论——90% 的情况,开 debug.log 再走四步就能定位,不用重装、不用删站。

为什么偏偏是”保存后”才白屏

编辑器能正常打开、能写能预览,说明前端 JS 和 REST 基本没问题。白屏发生在你点”更新”之后,问题就锁死在写入链路上:wp_insert_post、挂在 save_post 上的插件钩子、PHP 内存、或者保存后的重定向。把症状按根因拆开看最清楚:

症状 最可能根因 第一步动作
点更新后整页变白、无报错 save_post 钩子里的 PHP 致命错误 开 debug.log 看 Fatal
大文章保存才白屏、短文章正常 内存爆了(memory_limit) 提 WP_MEMORY_LIMIT
提示 response is not a valid JSON 某处在 header 前输出了内容或 BOM curl 验 /wp-json/
只有某一篇白屏、其他正常 该文 revision/autosave 数据损坏 从修订版本恢复
🎯
90%
白屏根因在后端,不在主题
💾
268MB
共享主机常见爆点阈值
⚙️
512M
推荐的 WP_MEMORY_LIMIT
⏱️
5 分钟
四步平均定位耗时

第一步:打开 debug.log 看真实报错

别猜。先让 WordPress 把错误写进文件。wp-config.php 里把这三行加在”停止编辑”注释之前:

define('WP_DEBUG', true);
define('WP_DEBUG_LOG', true);
define('WP_DEBUG_DISPLAY', false);

改完点一次”更新”复现白屏,然后看日志:

tail -n 50 wp-content/debug.log

白屏基本都会在这里露出一行 PHP Fatal error,记下文件名和行号,下一步就有的放矢。

第二步:揪出 save_post 钩子里的致命错误

不少 SEO、安全、自定义字段插件会在保存时跑自己的逻辑。只要其中一个函数抛 Fatal,整页就白。最快的验证是用 WP-CLI 一键全禁用(连后台都进不去也能用):

wp plugin deactivate --all
wp plugin activate classic-editor

再点一次更新。如果白屏消失,就逐个启用插件,每开一个测一次保存,撞到谁白屏谁就是凶手。有 SSH 但没 WP-CLI 时,也可以临时把 wp-content/plugins 改名成 plugins_off 来强制全停。

第三步:内存爆了(最常踩的坑)

区块编辑器一次保存要处理的数据比经典编辑器多得多。更坑的是,有些插件的 save_post 钩子里写了 get_posts() 却不限数量。默认 WP_MEMORY_LIMIT 在共享主机常常只有 40M~256M,大文章一保存就超。直接在 wp-config.php 提上去:

define('WP_MEMORY_LIMIT', '512M');

改完不用动其他设置,刷新后再保存。如果 512M 还白,九成是某个钩子在后台疯狂读全站数据——看 debug.log 里爆内存那行指向的函数名,去插件里给它的查询加上 posts_per_page => 20 之类的上限。

第四步:REST 返回了非 JSON

如果编辑器提示”The response is not a valid JSON response”,或者保存后卡住,多半是某个插件/主题在 HTTP 头之前 echo 了内容,或者文件带了 BOM 头,把 JSON 污染成了 HTML。直接打 REST 端点看状态码:

curl -I https://你的域名/wp-json/

正常应该返回 200 OK。若是 403,查安全插件或 ModSecurity 是不是拦了 /wp-json/;若是返回了一坨 HTML 而不是 JSON,去报错的插件/主题文件里找开头是否有空格、空行或 BOM。用编辑器”另存为 UTF-8 无 BOM”通常能解决。

踩坑实录

一篇 200 个区块的产品页,点更新直接白屏。debug.log 报 Allowed memory size of 268435456 bytes exhausted in /wp-includes/class-wp-post.php。我先提 WP_MEMORY_LIMIT 到 512M 让白屏消失,再追进去发现某 SEO 插件的 save_post 钩子里写了 get_posts([‘post_type’=>’any’]) 不限量,每次保存都把全站 4000 多篇文章读进内存——给它加 posts_per_page=>20 后,连 512M 都不需要了。

常见问题

Q:只有某一篇白屏,其他都正常?
多半是那篇的修订版本(revision)或自动保存数据坏了,或者文内嵌了个坏区块。先试”修订版本”面板恢复早一版,或把内容复制到新草稿里发。

Q:开了 debug 还是白屏、日志里啥都没有?
说明致命错误发生在更早期,或者主机给 PHP 设了硬内存上限、你的 WP_MEMORY_LIMIT 根本没生效。临时切到 classic-editor 先把内容发出去,再联系主机商确认 hard limit。

Q:白屏但前台文章打开正常?
典型 wp-admin 专属问题(插件 save 钩子、后台内存),和前端无关,按上面四步走即可,别去动主题和前台缓存。

你在区块编辑器上还踩过什么坑?欢迎到 fenij.com 留言聊聊,我这边攒了不少 WordPress 排障实记,说不定能直接对上你的症状。

相关完整手册

系统化的排查与配置思路,建议顺手收藏这几篇完整手册: