WordPress激活Elementor插件报create_function未定义致命错误
错误原因
该报错属于PHP版本与旧插件不兼容导致的致命错误:
- 你本地XAMPP环境运行的PHP版本为8.0及以上,PHP从8.0版本开始正式移除了内置函数
create_function()(该函数在PHP7.2版本就已被标记为废弃) - 你安装的
full-site-builder-for-elementor插件版本过久,没有做高版本PHP兼容,代码在第136行调用了已被删除的create_function(),激活时直接触发致命错误,导致整个WordPress站点无法加载。该错误是代码层面的问题,和服务运行状态无关,所以重启计算机不会自动修复。
修复步骤
第一步:先恢复站点正常访问
现在WordPress后台无法进入,不需要重装站点,直接手动禁用问题插件即可快速恢复:
- 打开本地文件夹路径
C:\xampp\htdocs\university\wp-content\plugins\ - 找到
full-site-builder-for-elementor文件夹,将其重命名为任意其他名称(比如full-site-builder-for-elementor-old),或者直接删除该文件夹 - 刷新本地站点地址,WordPress会自动识别到插件文件缺失并禁用该插件,站点前后台就可以正常打开了。
第二步:按需选择后续方案
如果你需要使用该插件的功能,可以从以下方案中选择:
- 方案1:切换PHP版本适配旧插件(仅适合本地测试环境)
将XAMPP的PHP版本切换到7.4版本,该版本仍保留create_function()函数,旧版插件可以正常运行。注意PHP7.4已经停止官方安全更新,绝对不要在公网生产环境使用这个配置。 - 方案2:手动修改插件代码兼容高版本PHP
如果你要保留当前高版本PHP,可以打开报错指向的文件:C:\xampp\htdocs\university\wp-content\plugins\full-site-builder-for-elementor\extensions\google-maps\google-maps.php
定位到第136行,将create_function()的写法替换为PHP原生支持的匿名函数写法。该位置常见的旧代码和替换示例如下:
替换保存后重新激活插件即可,如果后续其他位置报同样的// 原报错代码 add_action('wp_footer', create_function('', 'echo $this->map_js;')); // 替换为兼容高版本PHP的写法 add_action('wp_footer', function() { echo $this->map_js; });create_function()未定义错误,用同样的逻辑替换对应位置的代码就行。 - 方案3:替换为持续维护的兼容插件
直接卸载该旧插件,安装其他保持更新、兼容当前PHP版本和Elementor版本的全站构建类插件,这是长期使用最稳定的方案,不会后续因为版本升级反复出现兼容问题。
内容的提问来源于stack exchange,提问作者Rex
相关产品推荐
相关产品推荐

