我正在尝试理解WordPress中的一些功能,但我无法理解apply_filters(...)实际上的功能。
是否有人能够通过几个例子为我解决这个问题?
答案 0 :(得分:101)
apply_filters($tag, $value)
将'value'参数传递给每个函数'hooked'(使用add_filter
)到指定的过滤器'tag'。每个函数对值执行一些处理,并返回一个修改后的值,以传递给序列中的下一个函数。
例如,默认情况下(在WordPress 2.9中)the_content
过滤器通过以下函数序列传递值:
答案 1 :(得分:26)
迟到的回答
apply_filters()
与global $wp_filters
数组进行交互。基本上它只是检查当前过滤器(或挂钩)是否附加了一个动作(/回调函数),然后调用它。
将回调/操作附加到过滤器或挂钩时,只需将回调名称添加到全局过滤器数组即可。然后,在代码(例如模板,核心或插件文件)中发生对do_action()
或apply_filters()
的调用,然后WordPress搜索数组并调用回调。对于过滤器而言,唯一比钩子更特殊的是,它返回值(用于进一步处理)而不是仅仅触发回调。总结一下:钩子是插入数据,而过滤器是修改数据。
答案 2 :(得分:18)
考虑到最受欢迎的答案和其他资源,以下是我正在收集的内容:
<p>
标签,笑脸将转换为图标等。答案 3 :(得分:1)
在最基本的术语中,apply_filters用于初始化过滤器钩子... add_filter为已经创建的钩子分配一个新函数。