Hooks(钩子)是一种让一段代码在特定的预定义位置与另一段代码进行交互/修改的方式。它们构成了插件和主题与 WordPress 核心交互的基础,但核心本身也广泛使用它们。

有两种类型的钩子:Actions(动作) 和 Filters(过滤器)。要使用任何一种,你需要编写一个名为 Callback 的自定义函数,然后将其注册到 WordPress 钩子以针对特定的动作或过滤器。

Actions(动作) 允许你添加数据或改变 WordPress 的运行方式。动作会在 WordPress 核心、插件和主题的执行的特定点运行。动作的回调函数可以执行某种任务,例如向用户输出内容或将内容插入数据库。动作的回调函数不会向调用它的动作钩子返回任何内容。

Filters(过滤器) 赋予你在 WordPress 核心、插件和主题执行期间修改数据的能力。过滤器的回调函数将接受一个变量,对其进行修改并返回它。它们旨在以隔离的方式工作,并且绝不应有 副作用(例如影响全局变量和输出)。过滤器期望获得某种返回内容。

WordPress 提供了许多你可以使用的钩子,但你也可以 创建自己的钩子,以便其他开发人员可以扩展和修改你的插件或主题。

Actions vs. Filters(动作与过滤器)

动作和过滤器之间的主要区别可以总结如下:

  • 动作接收信息,对其执行操作,然后不返回任何内容。换句话说:它对某事物 采取行动 然后退出,不向调用它的钩子返回任何内容。
  • 过滤器接收信息,对其进行某种修改,然后返回它。换句话说:它 过滤 某事物并将其传递回钩子以供进一步使用。

换一种说法:

  • 动作中断代码流以执行某些操作,然后在不修改任何内容的情况下返回到正常流程;
  • 过滤器用于以特定方式修改某事物,以便后续代码使用该修改。

此处提到的 某事物 是指通过钩子定义发送的参数列表。更多内容将在后面的章节中介绍。

更多资源