首页 > Wordpress > 正文

WordPress 提示「Updating Failed / Publishing Failed」发布失败怎么办?

fenij 2026-08-12 43 Wordpress

在 WordPress 后台点「发布」或「更新」时,弹出一个红条:Updating Failed 或 Publishing Failed。文章写完了,就是保存不进去。这种报错 90% 不是数据库问题,而是 REST API 被中途拦下。

先确认是不是 REST API 的问题

打开浏览器开发者工具 → Network 面板,再点一次发布,看有没有对 /wp-json/wp/v2/posts 的请求返回 403、500 或 (blocked)。也可以直接 curl 测试:

curl -I https://yourdomain.com/wp-json/wp/v2/posts

如果返回 401 正常;如果返回 403/500 或被防火墙拦截,先别动文章,先修接口。

最常见:安全插件/防火墙把 API 挡了

Wordfence、Sucuri、iThemes Security、Cloudflare WAF,甚至服务器 mod_security,都可能把 Gutenberg 编辑器调用 REST API 的请求误判为攻击。

  • Wordfence → 防火墙 → 关闭「阻止 REST API 未授权请求」
  • Cloudflare → Security Events → 放行自己 IP
  • 服务器 mod_security → 临时禁规则或联系主机商放行 /wp-json/

插件冲突:快速隔离

用 FTP/SFTP 把 /wp-content/plugins 改名为 plugins_bak,再点发布。如果正常了,逐一把插件改回来,找到冲突项后换替代插件或等作者更新。

权限与磁盘空间

文件权限不对或磁盘满了也会导致保存失败:

find /var/www/html -type d -exec chmod 755 {} \;
find /var/www/html -type f -exec chmod 644 {} \;
df -h

发布失败排查速查表

现象 最可能原因 处理
Updating Failed REST API 被安全插件/防火墙拦截 检查 Wordfence/Cloudflare 规则
Publishing Failed 权限不足 / 磁盘满 / 插件冲突 改权限、查磁盘、重命名 plugins
返回 403 / 500 服务器 mod_security / PHP 报错 查看 error_log、临时关闭规则
🌐
/wp-json/
古腾堡保存必经接口
🔒
3 类
常见拦截源:插件/WAF/防火墙

常见问题

Q:为什么只有新文章保存失败,旧文章正常编辑?
多半是有新插件启用后拦截了 REST API,或主题升级后调用了新接口被防火墙拒绝。

Q:改完权限还是不行?
看一下磁盘是否满了(df -h),并检查 PHP 错误日志里的 fatal error。

Q:关了 Wordfence 就正常,能继续用吗?
可以,把 REST API 路径加入白名单,不必关整个防火墙。

如果你在 fenij.com 还遇到过其他保存失败的场景,欢迎在留言里补充,一起完善这份排查清单。

延伸:除了防火墙,还有三处要查

REST API 通了还保存失败,继续看这三处。第一,PHP 内存不够:长文章保存时吃内存,memory_limit 太低(比如 64M / 128M)会直接 500,调到 256M 通常解决。第二,固定链接规则坏了:.htaccess 被某次操作改乱,导致 REST 路由 404,进「设置 → 固定链接」点一下保存即可重建。第三,插件冲突:某个插件在 save_post 钩子里抛错,临时停用最近装的插件逐个排查。

现象原因解决
保存即 500PHP 内存不足memory_limit 调 256M
REST 返回 404重写规则损坏重存固定链接
仅个别文章失败插件冲突停用最近插件

实操速查清单

排错了别乱点,按这条线走最快:① 开浏览器开发者工具看 Network 里对 /wp-json/wp/v2/posts 的请求状态码;② 403/500 先查安全插件和 mod_security,401 是正常的;③ 不是接口问题就调 PHP 内存;④ 还不行重建固定链接;⑤ 最后才怀疑插件,用健康排查法停用一半、再一半定位。每一步都能把范围砍半,比挨个关插件高效得多。

常见问题

问:curl 返回 401 正常吗?
答:正常。401 表示需要登录,Gutenberg 会自动带凭证调用;只有 403、500 或被拦截才是真问题。

问:关掉防火墙还是失败?
答:转去查 PHP 内存限制和 .htaccess 重写规则,这两处比防火墙更隐蔽,也更容易被忽略。

问:只有某一篇保存不了?
答:多半是该篇内容触发了某个插件的校验,试着分段保存,或临时关掉相关插件再发。

相关完整手册

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