WordPress中文开发手册

  1. Home
  2. Docs
  3. WordPress中文开发手册
  4. WordPress插件开发
  5. Hooks
  6. Filters

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');