Sending Parameter Failed

时间:2015-11-24 作者:Viktor Iwan

这是如此基本,但我不明白为什么它不工作,我正在尝试从add\\u action()发送参数,这是我函数中的代码。php:

function testingID( $testParam) {  
var_dump($testParam);
die();
}
add_action( \'init\', \'testingID\', 1,1); 
我希望屏幕打印“1”,而只是:

string(0) ""
想知道这是什么原因吗?

谢谢

3 个回复
最合适的回答,由SO网友:cybmeta 整理而成

定义动作时,也会定义传递给回调的参数。例如,可以使用4个参数定义动作:

$a = 1;
$b = 2;
$c = 3;
$d = 4;
do_action( \'name_of_my_action\', $a, $b, $c, $d );
然后,当您钩住该操作时,您可以知道将使用多少这些参数;这些参数的值是定义操作时指定的值。例如,您可能只想使用2:

// The fourth parameter is the number of accepted
// parameters by the callback, in this case want only 2
// The parameters are passed to the callback in the same order
// they were set when the action was definied and with the same value
add_action( \'name_of_my_action\', \'my_action_callback\', 10, 2 );
function my_action_callback( $a, $b ) {

    // The value of $a is 1
    var_dump( $a );

    // The value of $b is 2
    var_dump( $b );

}
如果你看一下init 动作,eiter输入docssource code (在WodPress 4.3.1中,它位于wp-settings.php文件的第353行),没有传递给回调的参数。

如果要将自定义参数传递给操作和筛选器回调,可以使用几个选项。I recommend this question and its answer to learn about it. 例如,使用匿名函数:

$custom = 1;
add_action( \'init\', function () use $custom {

    // The value of $custom is 1
    var_dump( $custom );

}, 10, 2 );

SO网友:Aparna_29

在何处初始化的值$testParam?

add_action( \'init\', \'testingID\', 1,1);

这说明testingID function 应在接受1个参数的init上调用。但参数值未定义。最后两个1定义了函数的优先级和参数的数量。

SO网友:AddWeb Solution Pvt Ltd

在这里add_action( string $hook, callback $function_to_add, int $priority = 10, int $accepted_args = 1 ) 具有四个参数的挂钩函数:

$hook: 操作的名称$function_to_add 被钩住了。

$function_to_add: 希望调用的函数的名称。

$priority: 用于指定与特定操作关联的函数的执行顺序。较小的数字对应较早的执行,具有相同优先级的函数按照它们添加到操作的顺序执行。

$accepted_args: 函数接受的参数数。默认返回1。

我修改了你的代码,做了一些小改动,请检查一下。

function testingID( $testParam) {  
    // do stuff here...
    return $testParam;
}

add_action( \'init\', \'testingID\', 1,1);
请查看更多信息:codex

相关推荐

从unctions.php调用的Add_Actions未返回好值

我正试图通过这些功能为我的网站添加一些安全/访问防护。php。然而,每当我尝试通过函数添加时。php(而不是作为插件,我以前做过)失败(总是返回false)。例如:add_action(\"parse_query\", checkaccess()); // in functions.php 以及function checkaccess() { $allowAccess = false; if(is_admin()||is_front_page()||i