Application_filter (...)在 WordPress 中实际上是做什么的?

我试图理解 WordPress 中的一些功能,但是我无法理解 Application _ filter (...)到底是做什么的。

有人能给我举几个例子吗?

98614 次浏览

apply_filters($tag, $value)将“ value”参数传递给“ hook”(使用 add_filter)的每个函数到指定的过滤器“ tag”中。每个函数对该值执行一些处理,并返回一个修改后的值,以便传递给序列中的下一个函数。

例如,默认情况下(在 WordPress 2.9中) ,the_content过滤器通过以下函数序列传递值:

  • Wptexturize
  • Convert _ smilies
  • Convert _ chars
  • Wpautop
  • Short code _ unautop 短代码 _ unautop
  • 附件
  • 做短代码

在最基本的术语中,Apply _ filter 用于初始化一个过滤器钩子... add _ filter 为已经创建的钩子分配一个新函数。

考虑到最流行的答案和额外的资源,以下是我收集到的信息:

  • $tag 似乎是钩子名称的同义词
  • The _ content 是一个钩子的例子,属于“ filter”类型。
  • _ content 钩子由多个过滤器组成。
  • 过滤器修改数据。它们基本上是过滤数据库,在用户查看数据之前更改数据。
  • 例如,application _ filter ()的一个常见用法是将 _ content 过滤器应用于 $content。在这个例子中,双重返回将转换为 <p>标签,笑脸将转换为图标等。
  • “ the _ content”是一个钩子,而“ the _ content ()”是一个函数。

迟到的回答

长话短说

apply_filters() global $wp_filters阵列交互。基本上,它只是检查当前过滤器(或钩子)是否附加了动作(/回调函数) ,然后调用它。

说来话长

将回调/操作附加到筛选器或钩子时,只需将回调名称添加到全局筛选器数组。然后,在代码(例如模板、核心或插件文件)中发生对 do_action()apply_filters()的调用时,WordPress 通过数组搜索并调用回调。使用过滤器比使用钩子更特殊的一点是,它返回值(用于进一步处理) ,而不仅仅是触发回调。总结一下: 钩子指向 插入数据,而过滤器指向 修改数据。