add_filter()
热度:83add_filter( string $tag, callable $function_to_add, int $priority = 10, int $accepted_args = 1 )
将函数或方法挂钩到特定的过滤器操作。
描述:
WordPress提供过滤器挂钩,允许插件在运行时修改各种类型的内部数据。
插件可以通过将回调绑定到过滤器挂钩来修改数据。稍后应用过滤器时,每个绑定回调按优先级顺序运行,并有机会通过返回新值来修改值。
以下示例显示了回调函数如何绑定到过滤器挂钩。
注意,$example传递给回调,(可能)修改,然后返回:
function example_callback( $example ) {
// Maybe modify $example in some way.
return $example;
}
add_filter( 'example_filter', 'example_callback' );
绑定回调可以从none接受
在相应的apply_filters()调用中作为参数传递的参数总数。
换句话说,如果apply_filters()调用传递了四个总参数,则绑定到
它的回调可以不接受任何参数(相同于1)或最多四个参数。重要的是,
该$accepted_args值必须反映绑定回调实际
选择接受的参数数量。如果回调没有接受任何被认为
与接受1参数相同的参数。例如:
// Filter call.
$value = apply_filters( 'hook', $value, $arg2, $arg3 );
// Accepting zero/one arguments.
function example_callback() {
...
return 'some value';
}
add_filter( 'hook', 'example_callback' ); // Where $priority is default 10, $accepted_args is default 1.
// Accepting two arguments (three possible).
function example_callback( $value, $arg2 ) {
...
return $maybe_modified_value;
}
add_filter( 'hook', 'example_callback', 10, 2 ); // Where $priority is 10, $accepted_args is 2.
_注意:_无论回调是否有效,函数都将返回true。由您来照顾。这样做是为了优化目的,所以一切都尽可能快。
参数:
$tag
(string) (Required) 用于挂钩$ function_to_add回调的过滤器的名称。
$function_to_add
(callable) (Required) 应用过滤器时要运行的回调。
$priority
(int) (Optional) 用于指定与特定操作关联的函数的执行顺序。较低的数字与先前的执行相对应,具有相同优先级的函数按照它们添加到操作的顺序执行。
Default value(默认值): 10
$accepted_args
(int) (Optional) 函数接受的参数个数。
Default value(默认值): 1
Return(返回):
(true)
示例:
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;
}