Filter bekerja dengan memanggil setiap fungsi panggilan balik yang dikaitkan (dalam urutan prioritas). Nilai yang akan disaring diteruskan ke fungsi panggilan balik pertama. Nilai yang dikembalikan dari fungsi panggilan balik itu kemudian diteruskan ke panggilan balik kedua, dan nilai yang dikembalikan dari yang diteruskan ke ketiga dan seterusnya, sampai semua panggilan balik yang dikaitkan telah dipecat. Apa pun nilai yang dikembalikan terakhir (yaitu nilai yang difilter setelah melewati semua panggilan balik) kemudian dianggap sebagai nilai setelah filter diterapkan.
Dalam contoh di atas, setiap filter mengabaikan apa yang diteruskan ke sana, dan sebaliknya hanya mengembalikan array baru sendiri.
( Catatan samping: hindari fungsi anonim sebagai panggilan balik)
Mencoba:
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()) );