wordpress 学习笔记-action-filters
WP_Hook 类
此类是action 和hook 机制的共同基础,源码位于 wp-include/class-wp-hook.php
。 此类的一个对象对应了一个具体的action/filter
, 内部维护了一张二维的表格,第一维度是优先级,第二维度是注册顺序, 数据则是对应的函数信心。 每当执行操作发生的时候,就按照顺序一一调用表中的函数。
action 和 filters 的异同
- 相同点
- 都属于纯函数接口, 位于
wp-include/plugin.php
。 action
和filters
两种机制都是基于WP_Hook
类,- 且他们存储在同一个全局表
wp_filters
中 - 当他们被调用的时候,都会先调用tag为
all
的函数。
- 都属于纯函数接口, 位于
- 不同点
action
更侧重于操作本身被执行。fillters
更侧重于获得了经过一系列操作后的最终结果。
官方解释:
动作 (Action): 动作是 WordPress 运行到某些环节,或者在某些事件发生时,就会被执行的一种挂钩。任何的插件都可以通过动作接口来指示系统在遇到这些环节或者事件的时候,就执行指定的 PHP 函数。
过滤器 (Filter):过滤器的是 WordPress 用于修改即将要保存或者发送出去的数据的一种挂钩。任何的插件都可以通过过滤器接口来指示系统在遇到某些环节或者事件的时候,就执行指定的 PHP 函数去修改特定的数据。