WordPress安装主题触发array_merge()未知命名参数错误怎么解决
错误原因
该报错为低版本WordPress与PHP 8.0及以上版本的兼容性问题:WordPress 5.5及更早版本的wp-includes/widgets.php文件中,retrieve_widgets 函数调用array_merge()时使用了关联数组解包语法,PHP 8.0+版本会将关联数组的字符串键识别为函数的命名参数,而array_merge()本身不支持自定义命名参数,因此触发参数计数错误。
解决方案
- 方案1:升级WordPress到最新正式版。WordPress 5.6及之后的版本已官方修复该PHP兼容性问题,升级后即可正常安装、切换主题,是最安全且长期有效的解决方式。
- 方案2:将PHP运行版本降低至7.4.x系列。如果当前站点暂时无法升级WordPress,可在XAMPP配置中切换PHP版本到7.4,该版本不会触发关联数组解包的命名参数校验,兼容老版本WordPress。
- 方案3:手动修改核心文件应急修复(不推荐长期使用)。打开报错对应的
D:\xampp\htdocs\wordpress\wp-includes\widgets.php文件,定位到1261行,将原代码中的array_merge( ...$sidebars_widgets )修改为array_merge( ...array_values($sidebars_widgets) ),手动去除数组的字符串键即可解决报错。修改前请备份原文件,后续WordPress升级会覆盖该修改。
内容的提问来源于stack exchange,提问作者Abdul Basit
相关产品推荐
相关产品推荐

