Filters

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');
下一节:一个重要但经常被忽视的做法是在您的插件中使用自定义钩子,以便其他开发人员可以扩展和修改它。