详解WordPress中创建和添加过滤器的相关PHP函数 apply_filters()(创建过滤器) apply_filters() 函数用来创建一个过滤器,大多数被用在函数中,是 WordPress 插件机制中非常重要的一个函数,能让其它的主题和插件对一个值进行修改过滤。 用法 apply_filters( $tag, $value, $var... ); 参数 $tag (字符串)(必须)过滤器的名字。 默认值:None $value (混合)(必须)要过滤的值,如果没人过滤则直接返回这个值。 $var (混合) (可选)传给过滤函数额外的变量参数,辅助过滤函数对返回值进行操作,可以添加无限个。 返回值 (混合)过滤后的值,如果没人过滤则直接返回 $value 的值。 例子 没人过滤: echo apply_filters( 'test', '可以被修改的值' ); 打印结果: 可以被修改的值 有人过滤: function test_func(){ return '修改值'; } add_filter( 'test', 'test_func' ); echo apply_filters( 'test', '可以被修改的值' ); 打印结果: 修改值 接收参数: function test_func(){ return '修改值'; } add_filter( 'test', 'test_func' ); function test_func2( $text ){ return $text . '2'; } add_filter( 'test', 'test_func2' ); echo apply_filters( 'test', '可以被修改的值' ); 多个参数: function test_func( $text, $var, $var2 ){ return '修改值' . $var1 . $var2; } add_action( 'test', 'test_func', 10, 3 ); echo apply_filters( 'test', '可以被修改的值', '辅助值1', '辅助值2' ); 其它 此函数位于:wp-includes/plugin.php add_filter()(添加过滤器) add_filter() 可以挂载一个函数到指定的过滤器上。 用法 add_filter( $tag, $function_to_add, $priority, $accepted_args ); 参数 $tag (字符串)(必须)所挂载的过滤器名字(和目标 apply_filters() 函数的 $tag 属性一样)。 默认值:None $function_to_add (回调)(必须)要挂载的回调函数,参考 PHP 回调函数类型文档。 默认值:None $priority (整数)(可选)执行顺序,越小函数越先被执行。 默认值:10 $accepted_args (整数)(可选)回调函数接收的参数数量,设置多个可以接收更多 apply_filters() 函数传进来的参数。 默认值:1 返回值 (布尔)总是 True 例子 function test_func( $text, $var1, $var2 ){ return $text . $var1 . $var2; } add_action( 'test', 'test_func', 10, 3 ); echo apply_filters( 'test', '参数2', '参数3', '参数4' ); 打印: test参数2参数3 其它 该函数位于:wp-includes/plugin.php