Wordpress 警告:call_user_func_array() 期望参数 1 是有效的回调,数组必须正好有两个成员
Posted
技术标签:
【中文标题】Wordpress 警告:call_user_func_array() 期望参数 1 是有效的回调,数组必须正好有两个成员【英文标题】:Wordpress Warning: call_user_func_array() expects parameter 1 to be a valid callback, array must have exactly two members 【发布时间】:2014-10-05 20:05:51 【问题描述】:我正在尝试添加一个自定义函数,该函数将添加 Access-Control-Allow-Origin 标头,因为我无法访问服务器上的 .conf
文件。
下面是我的代码;
add_filter( 'wp_headers', array( 'eg_send_cors_headers' ), 10, 1 );
function eg_send_cors_headers( $headers )
$headers['Access-Control-Allow-Origin'] = get_http_origin();
$headers['Access-Control-Allow-Credentials'] = 'true';
if ( 'OPTIONS' == $_SERVER['REQUEST_METHOD'] )
if ( isset( $_SERVER['HTTP_ACCESS_CONTROL_REQUEST_METHOD'] ) )
$headers['Access-Control-Allow-Methods'] = 'GET, POST, OPTIONS';
if ( isset( $_SERVER['HTTP_ACCESS_CONTROL_REQUEST_HEADERS'] ) )
$headers['Access-Control-Allow-Headers'] = $_SERVER['HTTP_ACCESS_CONTROL_REQUEST_HEADERS'];
return $headers;
然后我在保存时收到此错误:
注意:未定义的偏移量:第 873 行 /example/wp-includes/plugin.php 中的 1 警告:call_user_func_array() 期望参数 1 是有效的回调,数组在 /example/wp-includes 中必须恰好有两个成员/plugin.php 第 192 行
【问题讨论】:
【参考方案1】:嗯,我想通了。希望这对其他人有帮助。
由于我只是调用一个没有方法的函数,所以我只是在 add_filter 函数中删除了我的函数名周围的数组 ()。正如您在示例 #1 here 中看到的那样,如果您只调用带有参数的函数,则只需将函数名称用单引号括起来。
固定代码如下:
add_filter( 'wp_headers', 'eg_send_cors_headers', 10, 1 );
function eg_send_cors_headers( $headers )
$headers['Access-Control-Allow-Origin']= get_http_origin();
$headers['Access-Control-Allow-Credentials'] = 'true';
if ( 'OPTIONS' == $_SERVER['REQUEST_METHOD'] )
if ( isset( $_SERVER['HTTP_ACCESS_CONTROL_REQUEST_METHOD'] ) )
$headers['Access-Control-Allow-Methods'] = 'GET, POST, OPTIONS';
if ( isset( $_SERVER['HTTP_ACCESS_CONTROL_REQUEST_HEADERS'] ) )
$headers['Access-Control-Allow-Headers'] = $_SERVER['HTTP_ACCESS_CONTROL_REQUEST_HEADERS'];
return $headers;
【讨论】:
数组格式是当你想注册一个特定的对象方法或静态方法时。见php.net/manual/en/language.types.callable.php 感谢您发布您的解决方案。当我将一个函数移动到一个单独的包含文件中时,我遇到了同样的问题。以上是关于Wordpress 警告:call_user_func_array() 期望参数 1 是有效的回调,数组必须正好有两个成员的主要内容,如果未能解决你的问题,请参考以下文章
使用 count() 修复 WordPress 插件文件中的 php sizeof 警告/错误
php WordPress:正在编辑帖子时,发出警告但允许其他人查看编辑屏幕。适用于远程培训情况。
Wordpress - The7 模板 - 在每个页面上我都有 4 个警告并且不知道如何在菜单或 php 站点/内容中禁用它
在Wordpress中显示IE8,IE7,IE6的浏览器升级警告
Wordpress 警告:call_user_func_array() 期望参数 1 是有效的回调,数组必须正好有两个成员
为啥我不能在 Wordpress 中创建新帖子?警告:从第 716 行 /public_html/wp-admin/includes/post.php 中的空值创建默认对象