WordPress 7.1 放弃 React 19 继续沿用 React 18.3:插件兼容性问题深度解析

7 月 27 日消息,WordPress 开发团队正式宣布:由于兼容性问题,React 19 将不会纳入 WordPress 7.1 版本,该版本将继续沿用 React 18.3。

对于数百万 WordPress 站长和插件开发者来说,这意味着”升级即崩站”的噩梦被及时踩了刹车——但也暴露了 WordPress 生态长期存在的一个技术债务。

一、发生了什么

WordPress 开发团队此前在 Gutenberg 插件中短暂启用了 React 19 进行测试。Gutenberg 作为 WordPress 区块编辑器的核心引擎,底层完全依赖 React。任何 React 版本变动都会直接影响到:

  • 区块编辑器:文章编辑页面的所有区块能否正常渲染;
  • 后台界面:从设置页到小工具,凡是用了 React 的地方;
  • 第三方插件:所有使用 React 开发后台界面的插件。

测试结果不乐观——新版 React 带来了大量兼容性问题,团队决定撤回升级,后续再逐步调整兼容层。

二、根本原因:插件开发者把 React 打包进了自己的代码

这次升级受阻的核心问题出在插件开发者身上:

部分插件开发者没有按照 WordPress 推荐的方式使用 react-jsx-runtime 共享脚本,而是直接将 React 的 JSX 运行时代码打包进自己的 JavaScript 文件

这个操作有什么后果?

WordPress 本身提供了一套统一的 React 运行时(wp-elementreact-jsx-runtime 等),所有插件应该引用这套共享脚本,而不是各自打包一份。但很多插件为了”省事”或者因为开发者不熟悉 WordPress 的开发规范,直接把 React 代码打进了自己的 JS 文件。

当 WordPress 从 React 18 升级到 React 19 时:

WordPress 核心加载 React 19(共享脚本)
  +
插件 A 内部打包了 React 18 代码(私有副本)
  +
插件 B 内部打包了 React 18 代码(私有副本)
  =
同一个页面上 React 18 和 React 19 同时运行

两个版本的数据结构不兼容,旧版本创建的对象交给新版本运行时处理,就会产生错误。轻则控制台报错,重则区块编辑器白屏、后台界面完全无法使用

三、不止是版本冲突——React 19 移除了大量旧 API

另一个卡点是:很多插件仍然在使用 React 早已标记为 deprecated(不推荐使用)的旧功能,而这些功能在 React 19 中已被彻底移除。

WordPress 开发团队正在兼容层中补充部分旧功能的 polyfill,但现阶段仍不足以确保所有现有插件都能顺利运行。翻译成大白话就是:

React 19 删掉了一堆老函数,WordPress 在想办法把其中一部分补回来,但补不完。插件开发者如果不主动改代码,升级就一定会出问题。

四、WordPress 正在做的事

  1. Plugin Check 插件新增自动检测:扫描插件是否直接打包了 react / jsx-runtime 代码,或是否使用了 React 19 已移除的旧功能。
  2. 呼吁插件作者提前测试:建议开发者在 Gutenberg 插件中开启 React 19 测试模式,提前发现并修复兼容性问题。
  3. GitHub 反馈通道:如果插件开发者发现兼容性问题,可以向 Gutenberg 项目的 GitHub 仓库反馈。

五、对普通站长的建议

这次”踩刹车”事件对普通站长的影响有两个层面:

好消息:暂时不用担心升级后站点崩

WordPress 7.1 不会强升 React 19,现有站点升级 WP 核心后不会因为 React 版本变更出现编辑器白屏或后台异常。

坏消息:React 19 迟早会来

这次只是”推迟”而不是”取消”。React 19 带来的性能提升和新特性(如 React Server Components 的进一步成熟)是 WordPress 无法长期拒绝的。未来某个版本(可能是 7.2 或更后),React 19 一定会被纳入。

站长现在应该做什么

  1. 关注插件的更新日志:特别是使用了 React 开发后台界面的插件(如 SEO 工具、页面构建器、自定义字段等),注意作者是否提到”React 19 兼容”。
  2. 测试环境先行:在正式升级 WordPress 大版本前,先在本地或 staging 环境测试所有插件的兼容性。
  3. 少装非必要插件:每个插件都可能成为 React 版本冲突的潜在来源。定期清理不再使用的插件,降低兼容性风险。
  4. 开启自动备份:确保每次 WordPress 核心升级前都有可回滚的完整备份。万一升级后编辑器白屏,能快速恢复。

六、这暴露了 WordPress 生态的一个老问题

这次 React 19 事件本质上是 WordPress 生态长期存在的”插件质量参差不齐”问题的集中爆发。WordPress 以”插件丰富”著称(官方仓库超过 6 万个插件),但插件代码质量没有统一的门禁:

  • 有的插件严格遵循 WordPress 编码规范;
  • 有的插件把 React 直接打包进 JS 文件;
  • 有的插件还在用 5 年前就废弃的 API。

WordPress 开发团队在努力通过 Plugin Check 这类工具建立”代码质量防火墙”,但要让数万开发者都改代码,需要很长的时间。

七、总结

事件 详情
决定 React 19 不纳入 WordPress 7.1,继续用 React 18.3
原因 插件私自打包 React 导致版本冲突 + 旧 API 在 React 19 中被移除
影响 站长暂时不用担心升级后崩站
后续 Plugin Check 新增检测,开发团队呼吁插件作者提前适配
趋势 React 19 迟早会来,只是时间问题

对于普通站长来说,这不是一个需要”紧急处理”的漏洞,而是一个值得关注的生态信号:WordPress 的每一次底层升级,最可能出问题的不是核心代码,而是你装的某个插件。

主机吧 | 百度云防护官方合作伙伴

提供 WAF 接入、高防 CDN、高防 IP、高防服务器、SSL 证书一站式服务

网站不出事,往往不是因为没漏洞,而是因为运气好。

给TA打赏
共{{data.count}}人
人已打赏
0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
在线客服
在线客服
热线电话
QQ客服
电子邮箱
suduwangluo