一文搞懂什么是WordPress的钩子

2020年6月19日 飞飞 阅读(1.57K)
知识付费主题,优惠促销中:xx-blog主题

wordpress钩子是开发wordpress主题和插件中很重要的一个概念,搞懂wordpress钩子,可以帮让我们在开发主题时事半功倍。

WordPress常用的有两种钩子,一种是动作(action),另外一种是过滤器(filter)钩子。

动作钩子概念

动作钩子是wordpress代码执行到某处或某个事件发生时触发的一系列函数,插件可以利用动作钩子API在WP代码执行的特定点之前插入一系列函数以控制执行。它跟过滤钩子极像,唯一不同的是过滤钩子返回一个处理后的值,而动作钩子仅完成函数执行并不返回值,如果钩子不存在则返回NULL并新增该钩子。

过滤钩子原理

其实动作钩子和过滤钩子它们的实现原理是一样的。它主要利用一个全局变量$wp_filter,增加动作函数时使用add_action()函数给全局变量$wp_filter增加了一个数组元素,这个元素键名中含有钩子名,值中含有对应函数及执行优先级等信息,在调用do_action()函数使用动作钩子时,它通过循环查找出所有跟钩子关联的函数并将其依次调用,最后返回处理后的数据。

语法结构

add_action($hook,$function_to_add,$priority = 10,$accepted_args = 1)

add_action()作用:该函数用于给指定的动作钩子$hook添加指定的挂载函数$function_to_add,同时它可以确定挂载函数执行优先级及其可接收参数个数;

$hook 为钩子名
$function_to_add 为挂载函数名
可选参数$priority为该挂载函数执行的优先级,默认为10,该数字越小则越早执行,数字相同则按其添加到钩子上的顺序执行,越早添加越早执行
可选参数$accepted_args确定挂载函数接收的参数个数,默认为1

之前写过这个函数,感兴趣的可以详细了解:add_action

例子说明

在wp-includes/general-template.php文件中有一个wp_head动作钩子,我们可以看看这个动作钩子函数

function wp_head() {
do_action('wp_head');
}

其中里面有个do_action,定义了wp_head钩子,我们在用这个钩子的时候使用了add_action(‘wp_head’, ‘xxzhuti_wp_head’),由此可见do_action定义了一个动作,并且执行了定义的这个动作,根据这个原理我们也可以用do_action定义自己的动作钩子。


关注微信公众号『xx主题网

第一时间了解最新网络动态
关注博主不迷路~

未经允许不得转载:xx主题网 » 一文搞懂什么是WordPress的钩子
分享到:

评论抢沙发

要发表评论,您必须先

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏

扫码关注微信公众号

扫描关注xx主题网