在WordPress PHP中获取有关用户函数数组的警告。。。?

在WordPress PHP中获取有关用户函数数组的警告。。。?,php,wordpress,Php,Wordpress,我试图通过URL将调查中的变量传递到wordpress网站。当变量成功通过时,我还收到以下消息: 警告:call_user_func_array()要求参数1为有效回调,第286行的/home4/insig14/public_html/wp includes/class-wp-hook.php中未给出任何数组或字符串 我知道这是一个“add_action”或add_filter”问题,我能想到的唯一问题是在我添加到functions.php的代码中: for ($x=1;$x<=38;$x

我试图通过URL将调查中的变量传递到wordpress网站。当变量成功通过时,我还收到以下消息:

警告:call_user_func_array()要求参数1为有效回调,第286行的/home4/insig14/public_html/wp includes/class-wp-hook.php中未给出任何数组或字符串

我知道这是一个“add_action”或add_filter”问题,我能想到的唯一问题是在我添加到functions.php的代码中:

for ($x=1;$x<=38;$x++){
    $a = "tsati";
    $b = $a . $x;
    add_action('init', add_get_val($b));

}

function add_get_val($b){
    global $wp;
    $wp-> add_query_var($b);
}
for($x=1;$x添加查询变量($b);
}

我正在传递38个变量,每个变量都是“tsatiX”(例如tsati1、tsati2…)。变量成功传递,但错误不断出现在网站顶部。这可能是我的“添加”操作有问题"函数,但我不确定它是什么。有什么帮助吗?

添加操作的第二个参数是,但您要传递的是
null
,因为
add\u get\u val
函数不返回任何内容。如果您想传递
add\u get\u val
函数而不是调用该函数的结果,只需传递其na即可把我当作一根绳子

add_action('init', 'add_get_val');

我不确定这是否真的是你想要做的,但这就是为什么你会得到这个错误。

添加动作的第二个参数是,但是你传递的是
null
,因为
添加获取值
函数不会返回任何东西。如果你想传递
添加获取值
函数调用该函数的结果,只需将其名称作为字符串传递

add_action('init', 'add_get_val');

我不确定这是否真的是你想要做的,但这就是为什么你会犯这个错误。

你的错误在这一行:

add_action('init', add_get_val($b));
此函数用于在WordPress处理
'init'
操作时注册要运行的回调-第二个参数应该是要运行的回调。但实际上您正在运行该函数,因此传递其结果

如果我们使用一个临时变量将行一分为二,这可能会更清楚:

$temp = add_get_val($b);
add_action('init', $temp);
因此,
add\u get\u val
会立即运行,但由于它不返回任何内容,
null
会被传递到
add\u action
。WordPress不会检查此项,因此稍后会尝试以回调的形式执行
null
,从而给出错误

如果要注册
add_get_val
作为回调,请将其作为字符串传入:

add_action('init', 'add_get_val');
或者,您可能希望成为回调函数:

add_action('init', function() use ($b) { add_get_val($b); });
或者可以直接运行该代码,而根本不从
init
钩子注册它,因为您的代码似乎工作正常,在这种情况下,您可以运行:

add_get_val($b);

您的错误在这一行:

add_action('init', add_get_val($b));
此函数用于在WordPress处理
'init'
操作时注册要运行的回调-第二个参数应该是要运行的回调。但实际上您正在运行该函数,因此传递其结果

如果我们使用一个临时变量将行一分为二,这可能会更清楚:

$temp = add_get_val($b);
add_action('init', $temp);
因此,
add\u get\u val
会立即运行,但由于它不返回任何内容,
null
会被传递到
add\u action
。WordPress不会检查此项,因此稍后会尝试以回调的形式执行
null
,从而给出错误

如果要注册
add_get_val
作为回调,请将其作为字符串传入:

add_action('init', 'add_get_val');
或者,您可能希望成为回调函数:

add_action('init', function() use ($b) { add_get_val($b); });
或者可以直接运行该代码,而根本不从
init
钩子注册它,因为您的代码似乎工作正常,在这种情况下,您可以运行:

add_get_val($b);

请注意,在将站点移动到其他主题之前(以及在WordPress 5之前),此错误从未出现过。请注意,在将站点移动到其他主题之前(以及在WordPress 5之前),此错误从未出现过。谢谢!我决定立即运行代码,这解决了问题。您的解释很有道理,但我发现有趣的是,此错误以前从未出现在网站上。@Carlosarelano可能您以前的主题从未实际处理
init
钩子,因此如果您通过了有效回调,它将不起作用?或者你只是更改了一个错误报告设置,没有意识到这个警告一直存在。谢谢!我决定立即运行代码,解决了这个问题。你的解释很有道理,但我发现有趣的是,这个错误以前从未出现在网站上。@CarlosArellano可能是你的公关evious theme从未实际处理
init
hook,因此如果您通过了有效的回调,它就不会工作了?或者您只是更改了错误报告设置,没有意识到此警告始终存在。