这是一个问得不好的问题,因为您没有提供有关所显示错误消息的上下文。鉴于错误似乎来自 WordPress 代码内部,我猜测您无法直接控制触发此错误的底层函数调用。我最好的猜测是您正在部署 PHP 8.0+ 的系统上运行旧版本的 WordPress(请参阅下面的说明)。升级 WordPress 或降级到 PHP 7.4。
对于以这种方式寻找代码中为何抛出此错误的答案的任何其他人来说,该错误与 PHP 8.0 的一个名为“的新功能”有关。命名参数 https://php.watch/versions/8.0/named-parameters'。如果是array_merge
,如果您使用字符串键控数组按以下方式调用它,则可能会引发错误:
call_user_func_array('array_merge', [
'key1'=>['abc', 'def'],
'key2'=>['ghi', 'jkl']
]);
-> Error
这是因为call_user_func_array
将把顶级数组键解释为要传递到的参数名称array_merge
,并且这些键将与函数参数不匹配。
这里的解决方案是使用array_values
首先剥去钥匙:
call_user_func_array('array_merge', array_values([
'key1'=>['abc', 'def'],
'key2'=>['ghi', 'jkl']
]));
-> ['abc','def','ghi','jkl']