示例二:
这次我们要通过钩子来传递参数了,do_action('hookname',$arg_1,$arg_2,$arg_3)除了钩子名外,还要带3个参数,然后add_action()中,除了钩子名,函数名,优先级,剩下那个就是参数的个数了,也就是挂靠的这个函数需要多少个参数,do_action传了3个参数,那么对应的add_action的accepted_args可以为0、1、2、3。少接受可以,但是多了就木有了。
例如:
<?php
add_action('luke','function1',10,2);
add_action('luke','function2',1,3);
function function1($a1,$a2){
echo $a1.'<br />'.$a2;
}
function function2($a1,$a2,$a3){
echo $a1.$a2.$a3.'<br />';
}
$arg_1 = '这里是LUKE';
$arg_2 = '这里有主题制作教程';
$arg_3 = '我们提供主题定制服务';
do_action('luke',$arg_1,$arg_2,$arg_3);
?>
可以看到定义并执行了一个叫“luke”的动作钩子,并且传3个参数给动作函数,然后使用add_action,往这个钩子上挂了2个函数,function1函数需要2个参数,function2需要3个参数,所以使用add_action的时候后面对应的参数个数也是2和3。然后优先级分别是10和1,所以function2先执行。
我想到了这里,动作的使用已经很清楚了。然而关于动作钩子(hook)的函数不仅仅只有这两个,还有has_action() do_action_ref_array() remove_action() remove_all_action()....要想再深入了解,可以看官网了。
1 2

