Filter是Hooks的两种类型之一。
它们为功能修改其他功能的数据提供了一种方法。 他们是Action的对手。
与Action不同,Filter旨在以孤立的方式工作,并且不应该有副作用,例如影响全局变量和输出。
添加 Filter
添加过滤器的过程包括两个步骤。
首先,您需要创建一个回调函数,该函数在运行过滤器时将被调用。 其次,您需要将Callback函数添加到一个将执行该函数调用的钩子中。
您将使用 add_filter()
函数,传递至少两个参数 string $ tag,callable $ function_to_add
。
以下示例将在执行the_title过滤器时运行。
<?php
function wporg_filter_title($title)
{
return 'The ' . $title . ' was filtered';
}
add_filter('the_title', 'wporg_filter_title');
说我们有一个帖子标题“学习WordPress”,上面的例子将修改为“学习WordPress被过滤”。
您可以参考Hooks章节了解可用挂钩的列表。
当您获得更多的经验,通过WordPress核心源代码将允许您找到最合适的钩子。
附加参数
add_filter()
可以接受两个附加参数,int $ priority
用于给予回调函数的优先级,int $ accepted_args
表示将传递给回调函数的参数数。
有关这些参数的详细说明,请阅读有关操作的文章。
<?php
function wporg_css_body_class($classes)
{
if (!is_admin()) {
$classes[] = 'wporg-is-awesome';
}
return $classes;
}
add_filter('body_class', 'wporg_css_body_class');
下一节:一个重要但经常被忽视的做法是在您的插件中使用自定义钩子,以便其他开发人员可以扩展和修改它。