钩子概念解析
该函数位于wp-includes/general-template.php文件的1577行,看到这个函数的定义:
function wp_head() {
do_action('wp_head');
}
这个函数就简单的一句do_action('wp_head') , 这个do_action()函数可以解释为:执行一个动作,这里执行一个叫名称为wp_head的动作,里面的参数wp_head并不是函数,而仅仅是一个名称。 我们把这个动作叫做动作钩子,这个名为wp_head动作可以包涵很多函数的,我们可以自定义一些函数让它归属于wp_head动作,可以形象的说成是把一个函数挂在这个动作上。 do_action()函数介绍如下:
do_action($tag, $arg);
//$tag 必需、你想创建的动作钩子的名称
//$arg 传递给已有的动作钩子的值
?>
准确的说do_action()函数是创建一个动作并执行它,因为这个要执行的动作并不需要像变量一样需要先申明明,do_action('wp_head')就是直接创建一个叫wp_head的动作然后执行它。实例:
do_action('kutailang');
//创建一个叫kutailang的动作并且执行,然后你就可以往这个钩子上挂函数了。。
?>
现在创建了这个动作,但是这个动作并没有包含任何函数,所以执行这个空的动作就不会执行任何函数,所以我要再往这个动作上挂一个函数,使用add_action()函数可以往动作钩子上挂函数,add_action()的介绍:
add_action( $tag, $function_to_add, $priority, $accepted_args );
//$tag 参数必需,动作钩子的名称
//$function_to_add 参数为必需,要执行的函数
//$priority 参数为int(整数),数字越小越先调用
//$accepted_args 参数为int(整数),函数需要的参数个数,默认1;
?>
我们的实例需要添加的代码:
add_action('kutailang','kutailang_echo',88);
//把函数kutailang_echo挂在名为kutailang动作上
//下面定义函数kutailang_echo
function kutailang_echo(){
echo ''}?>
这样执行 do_action('kutailang')的时候就会执行kutailang所包含的所有函数。 前面说到的wp_head()函数执行了名叫wp_head的动作,很多插件都需要在页面加载js和css文件或代码,就需要用到这个函数在网页的头部来输出相应的代码