Jupiter可视化构造器出现Elementor pro_widgets非法偏移报错如何修复
Elementor搭配Jupiter主题出现pro_widgets非法字符串偏移警告修复
报错信息
站点基于Jupiter主题的可视化构造器编辑时触发以下PHP警告:
Warning: Illegal string offset 'pro_widgets' in /home/customer/www/gedysa.com/public_html/wp-content/plugins/elementor/includes/api.php on line 164 Warning: Illegal string offset 'pro_widgets' in /home/customer/www/gedysa.com/public_html/wp-content/plugins/elementor/includes/api.php on line 167
对应触发警告的代码片段:
164 $data['pro_widgets'] = []; 165 } 166 167 return $data['pro_widgets'];
问题根因
触发警告的核心原因是:代码执行到164行时,变量$data不是预期的数组类型,而是字符串格式,PHP不允许对字符串类型变量使用数组键名方式赋值、取值,因此抛出非法偏移警告。通常是接口返回数据格式异常、主题插件版本不兼容导致$data没有按预期被初始化为数组。
可行修复方案
- 代码层直接修复
打开报错路径对应的api.php文件,在操作$data['pro_widgets']的逻辑前增加类型判断和初始化逻辑,调整后对应段代码如下:
修改前先备份原文件,避免改错导致站点异常。// 提前校验$data类型,非数组则初始化为空数组 if ( ! is_array( $data ) ) { $data = []; } if ( ! isset( $data['pro_widgets'] ) ) { $data['pro_widgets'] = []; } return $data['pro_widgets']; - 版本兼容修复(优先尝试)
这类警告大概率是Elementor与Jupiter主题版本不匹配导致:- 提前做全站备份,将Jupiter主题、Elementor插件、Elementor Pro(如有安装)更新到官方标注的互相兼容的最新稳定版本,清空缓存后验证报错是否消失
- 如果是刚更新完组件出现的报错,可通过Elementor内置的「工具-版本回滚」功能,将Elementor回滚到更新前的稳定版本即可恢复
- 临时屏蔽报错(应急用,不建议长期使用)
如果暂时无法调整代码或更新版本,可修改站点根目录下的wp-config.php文件,关闭PHP警告的前台输出,注意代码要放在文件中/* That's all, stop editing! Happy publishing. */注释的上方:
该方法只是隐藏警告提示,不会解决根本问题,后续还是要通过前两种方案彻底修复。error_reporting(E_ALL & ~E_NOTICE & ~E_WARNING); define( 'WP_DEBUG_DISPLAY', false );
内容的提问来源于stack exchange,提问作者Pepe GA
相关产品推荐
相关产品推荐

