WordPress add_filter vs add_action 函数,基础知识。

已发表: 2021-08-24

披露:这篇文章包含附属链接。 当您单击此帖子中的产品链接时,我可能会收到补偿。 有关我的广告政策的说明,请访问此页面 谢谢阅读!

内容

  • WordPress add_filter vs add_action 函数是什么?
  • 那么,WordPress 中的“钩子”到底是什么?
  • 钩子、过滤器和动作之间有什么区别?
  • WordPress 中的 do_action 和 add_action 有什么区别?
  • Action Hooks 和 Filter Hooks 有什么区别?
  • 过滤器在 WordPress 中的作用是什么?
  • 动作在 WordPress 中有什么作用?
  • 调整 WordPress 插件时,我可以在 add_filter 之前使用 add_action 吗?
  • 那么 WordPress 中的 add_filter 钩子与 add_action 钩子之间的真正区别是什么?

WordPress add_filter vs add_action 函数是什么?

如果您可以对其进行一两次调整,是否曾经获得过完美的插件或主题? 但是,这两个调整只需要您添加一点代码,甚至可能是一些短代码。

但在此之前,您需要了解 add_filter 与 add_action 的基本概念、差异以及它们在 WordPress 中的工作方式,然后才能将几乎完美编码的插件或主题变成完全混乱的混乱。

WordPress 中的“add_action”是用来创建触发器“钩子”的。 当某事发生时,然后做其他事情。

“add_filter”用于“挂钩”数据,即更改/替换。 例如,如果有 [some-code],则将其更改为 some-other-expanded-code。

“钩子”是特定过滤器或操作的“函数”或“方法”。 更多关于下面的“钩子”。

WordPress 提供过滤器钩子以允许插件在其运行时修改各种类型的内部数据。 插件可以通过将回调绑定到过滤器挂钩来修改数据。 稍后应用过滤器时,每个绑定的回调按优先级顺序运行,并有机会通过返回新值来修改值。

  • 动作是执行输出的那些 PHP 函数。
  • 过滤器是那些返回输出的 PHP 函数。

我们可以扩展任何使用动作和过滤器的插件,而无需修改它们的代码。 通过在我们自己的主题或插件中添加过滤器和操作。 让我们进一步了解这些在 WordPress 中的工作原理。

那么,WordPress 中的“钩子”到底是什么?

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

有两种类型的钩子:动作和过滤器。 要使用其中任何一个,您需要编写一个称为“回调”的自定义函数,然后将其注册到 WordPress 挂钩以执行特定操作或过滤器。 来源: WordPress.org

钩子、过滤器和动作之间有什么区别?

如上所述,“钩子”基本上是过滤器和操作的统称。 两者都是为了改变函数的正常行为。

从编程的角度来看,没有太大的区别,正如您可以看到的那样,在WordPress 源代码添加“动作”与添加“过滤器”是一样的。

不同之处在于它们的使用方式。 您使用“动作”来完全改变函数的行为或向现有函数添加某些内容。

您使用“过滤器”来更改函数或变量的结果。

WordPress 中的 do_action 和 add_action 有什么区别?

“do_action”注册了一个“action hook”,而“add_action”向注册的 hook 添加了一个回调函数。

Action Hooks 和 Filter Hooks 有什么区别?

动作挂钩

“Actions Hooks”旨在用于 WordPress 的核心或某些插件或主题让您有机会在其内部的某个点插入代码以执行特定任务或“动作”。

过滤器挂钩

“Filter Hooks”的行为与“Action Hooks”非常相似,但它们的预期用途是接收一个值并可能返回该值的修改版本。

“Filter Hook”也可以像“Action Hook”一样使用,即修改全局变量或生成一些HTML,假设这是您在调用钩子时需要做的事情。

过滤器在 WordPress 中的作用是什么?

“过滤器”获取它接收到的信息,修改它,然后返回它。 换句话说,它过滤某些东西并将其传递回钩子以供进一步使用。

因此,过滤器用于以特定方式修改某些内容,以便稍后代码使用修改。

动作在 WordPress 中有什么作用?

一个“动作”获取它接收到的信息,执行它在其编码中给出的任何指令,然后什么也不返回。 基本上,它作用于某些东西然后退出,不返回任何东西给调用钩子。

一个动作会中断代码流做某事,然后返回到正常流程而不做任何修改。

因此,“过滤器”是一组参数或指令,“动作”是指令的执行。

调整 WordPress 插件时,我可以在 add_filter 之前使用 add_action 吗?

使用 add_action() 和 add_filter() 的顺序基本上无关紧要。

重要的是调用相应的 do_action() 和 apply_filters() 的顺序。

因此,如果“apply_filters”,例如,('wp_insert_post_data') 在“do_action”('save_post') 之前运行,则它不会工作。 你必须想出另一种方法来获得你想要的结果。

那么 WordPress 中的 add_filter 钩子与 add_action 钩子之间的真正区别是什么?

实际上,“Filter Hooks”几乎是“Action Hooks”的超集。 “Filter Hooks”可以做任何“Action Hooks”可以做的事情,甚至更多。 尽管开发人员没有责任使用“Action Hook”返回值,但他们使用“Filter Hook”所做的。

“过滤钩子”基本上定义了任务的参数,而“动作钩子”执行任务。 有关“add_filter”钩子和“add_action”钩子之间差异的更多信息,请查看WordPress.org 开发人员部分中的官方 WordPress 文档