Los filtros funcionan llamando a cada una de las funciones de devolución de llamada enganchadas (en orden de prioridad). El valor a filtrar se pasa a la primera función de devolución de llamada. El valor devuelto de esa función de devolución de llamada se pasa a la segunda devolución de llamada, y el valor devuelto se transfiere a la tercera y así sucesivamente, hasta que se hayan activado todas las devoluciones de llamada enganchadas. Cualquiera que sea el último valor devuelto (es decir, el valor filtrado que ha pasado a través de todas las devoluciones de llamada) se toma como el valor después de que se haya aplicado el filtro.
En el ejemplo anterior, cada filtro ignora lo que se le pasa y, en cambio, solo devuelve su propia matriz nueva.
( Nota al margen: evitar funciones anónimas como devoluciones de llamada)
Tratar:
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()) );