过滤器通过调用每个挂钩回调函数(按优先级顺序)工作。将要筛选的值传递给第一个回调函数。然后将该回调函数的返回值传递给第二个回调,并将该回调函数的返回值传递给第三个回调,依此类推,直到所有挂接的回调都已触发。无论最后返回的值是什么(即通过所有回调的筛选值),都将在应用筛选后作为值。
在上面的示例中,每个过滤器都忽略传递给它的内容,而只是返回自己的新数组。
(Side note: 避免匿名函数作为回调)
尝试:
add_filter(\'example_filter\', \'my_example_filter_1\' );
function my_example_filter_1( $array ){
$array[]=\'tax1\';
return $array;
}
add_filter(\'example_filter\', \'my_example_filter_2\' );
function my_example_filter_2( $array ){
$array[]=\'tax2\';
return $array;
}
add_filter(\'example_filter\', \'my_example_filter_3\' );
function my_example_filter_3( $array ){
$array[]=\'tax3\';
return $array;
}
print_r( apply_filters( \'example_filter\', array()) );