三分钟热度教程:WordPress插件开发之能自定义钩子吗

12月/01日/WordPress/浏览 156

因为,我只能保持三分钟热度,所以,知识点一定要在三分钟之内讲完……


关于 WordPress 钩子的话题,已经聊了很多。既然,钩子这么好用,我们能定义自己的钩子吗?


当然可以!而且,还很方便。只要在需要钩子的调用 add_action 和 do_action 函数就可以了。


add_action 和 do_action 函数,不仅可以调用已经定义好的钩子,而且还可以定义新的钩子。如果,传入的钩子名称不存在,你就定义了一个新的钩子。


看一下代码就清楚了:


// 钩子回调函数
function example_callback( $arg1, $arg2 ) {
    // 一些处理过程
}
add_action( 'example_action', 'example_callback', 10, 2 );

// 自定义钩子,同时调用这个钩子上所有的回调函数
do_action( 'example_action', $arg1, $arg2 );


再看一个例子:


function my_callback( $should_be_an_array ){
   var_dump($should_be_an_array);
}
add_action( 'my_action', 'my_callback' );
do_action( 'my_action', array(new stdclass()) );
do_action( 'my_action', array( 'array_item_thats_not_an_object') );


其实,并没有所谓的定义钩子的过程,在使用钩子的过程中,钩子就诞生了。这个过程有点像是给一组函数起了一个名字,之后通过这个呼叫这个名字,就会执行绑定在这个名字上的回调函数。


这里需要注意的是,需要先 add_action ,再 do_action,不然回调函数是不会执行的。


发表评论

暂无评论,抢个沙发...

客服 工单