一文搞懂什么是WordPress的钩子

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

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

动作钩子概念

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

过滤钩子原理

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

语法结构

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

add_action()作用:该函数用于给指定的动作钩子 h o o k 添 加 指 定 的 挂 载 函 数 hook添加指定的挂载函数 hookfunction_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主题网”,原创技术文章第一时间推送。

文章来源:https://www.xxzhuti.com/310.html


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值