在使用 Elementor Pro 创建 WordPress 模板时,遇到过 Display Conditions 打不开或加载空白 的情况吗?最近在升级到 WordPress 6.9 后,我们的模板管理页面出现了类似问题,经过排查发现,核心问题与 JavaScript 兼容性以及数据库中模板条件的存储方式有关。
一、问题现象
在 WordPress 6.9 中打开某个模板的 Display Conditions 时,控制台报错:
1
|
Uncaught (in promise) ReferenceError: sprintf is not defined
|
页面无法显示 Display Conditions 窗口,模板条件无法编辑。
二、问题原因
1. JavaScript 兼容性问题
官方给出的答复是:
“It appears this issue was caused by a JavaScript compatibility problem triggered by changes in WordPress 6.9 (related to sprintf / i18n). Elementor Pro was still calling sprintf() in a way that was no longer available in WP 6.9.”
也就是说,WordPress 6.9 对 sprintf() 的使用进行了兼容性调整,而旧版本 Elementor Pro 仍然在调用旧方式,导致前端 JS 出错,Display Conditions 面板无法加载。
三、解决方案
既然是因为wordpress升级导致此问题,那么最简单的方法就是降级处理,降级到之前版,因为之前版本是wordpress-6.8.3-zh_CN,所以我们来试试降级到wordpress-6.8.3-zh_CN版本看一下能否解决。
首先在进行WordPress降级/回退版本操作前,请对您的整站数据进行备份、请对您的整站数据进行备份、请对您的整站数据进行备份。
备份好数据,我们就可以开始对WordPress站点进行降级操作了。
关闭更新
在降级之前建议你先关闭站点的自动更新,不然一降级完成,网站又被更新了…
方便省事建议你直接在你WordPress网站的根目录下找到wp-config.php文件打开,找到/* That’s all, stop editing! Happy publishing. */这行文字,在它的前面加入下面这句代码:
define( 'AUTOMATIC_UPDATER_DISABLED', true );
WordPress降级方法一 手动替换核心文件
首先前往WordPress发布存档页面,下载到自己需要的WordPress版本核心程序,也就是wordpress-6.8.3-zh_CN版本程序

解压后删除 wp-content 这个目录(这个目录是我们的用户文件,例如主题插件上传的图片等,如果不删除直接覆盖,那么可能导致这些数据消失…)。
然后上传到我们的站点根目录直接覆盖。
这个时候就会覆盖WordPress的核心文件,替换为我们指定版本的WordPress的了。
这时我来再去刷新一下看看,问题完美解决!!!
