以下大部分内容可以在Codex:<人力资源>apply_filters
附加到过滤器挂钩的回调函数$tag
通过调用此函数调用。这个函数可以用来创建一个新的过滤器挂钩,只需使用$tag参数指定的新挂钩的名称调用这个函数。
$value = apply_filters( $tag, $value, $var_1, $var_2, ... );
In essence:您使用
apply_filters
过滤给定的
$value
- 关于值本身以及可选提供的变量
$var_1
通过
$var_n
.<人力资源>
add_filter
将函数挂接到特定的筛选器操作。
add_filter( $tag, $function_to_add, $priority, $accepted_args );
In essence:您使用
add_filter
将自定义函数挂接到给定的筛选器操作(
$tag
), 您可能通过以下方式生成
apply_filters
之前(或者它是一个内置的过滤器操作,或者源于插件/您的主题)<下面是一个虚构的例子:
function print_initials( $name ) {
if ( ! is_string( $name ) ) {
return;
}
$fragments = explode( \' \', $name );
/**
* Filter wether to print initials in reverse order.
*
* @param bool $reverse Print initials in reverse order?
*/
if ( apply_filters( \'reverse_initials\', FALSE ) ) {
$fragments = array_reverse( $fragments );
}
foreach ( $fragments as $f ) {
echo substr( $f, 0, 1 );
}
}
print_initials( \'Some Guy\' ); // outputs: SG
add_filter( \'reverse_initials\', \'__return_true\' );
print_initials( \'Some Guy\' ); // outputs: GS
现在,如果我们按原样调用函数,则从左到右打印首字母&mdash;因为这就是我们定义的默认行为。
第二次,我们按相反的顺序得到首字母&mdash;因为过滤器功能__return_true
, 连接到我们的筛选操作,总是返回TRUE
从而使首字母从右向左输出。