add_filter() 是 WordPress 提供的一个过滤器钩子函数,我们可以通过此函数在程序运行时修改各种类型的内部数据。这个钩子的使用方法很简单,我们仅需用它构造一个回调函数即可,如下所示:

function example_callback( $example ) {
    // 对 $example 的一系列处理过程
    return $example;
}
add_filter( 'example_filter', 'example_callback' );

通过将参数 $example 传递给回调函数,在经过一系列处理后返回该 $example 的新值。add_filter() 一共有四个参数,其调用方法如下所示:

add_filter( string $tagcallable $function_to_addint $priority = 10,int $accepted_args = 1 )

$tag:必填(字符串)。挂载回调函数的过滤器名称。

$function_to_add:必填(可调用的函数)。过滤器应用时调用的回调函数。

$priority:可选(整型)。用于指定与特定操作关联的函数的执行顺序,默认为10。

$accepted_args:可选(整型)。add_filter() 过滤器可接受的参数个数,默认为1。

由最后一个参数我们可以了解到 add_filter() 钩子的回调函数 $function_to_add 可以接受零到多个参数,这取决于 add_filter() 最后一个参数的设置。

最后,我们看下 add_filter() 函数的具体定义,其位于 wp-includes/plugin.php 文件中,具体代码如下:

function add_filter( $tag, $function_to_add, $priority = 10, $accepted_args = 1 ) {
	global $wp_filter;
	if ( ! isset( $wp_filter[ $tag ] ) ) {
		$wp_filter[ $tag ] = new WP_Hook();
	}
	$wp_filter[ $tag ]->add_filter( $tag, $function_to_add, $priority, $accepted_args );
	return true;
}

参考文档:https://developer.wordpress.org/reference/functions/add_filter/