add_filter('example_filter', function(){ return array( 'tax1' ); } );
add_filter('example_filter', function(){ return array( 'tax2' ); } );
add_filter('example_filter', function(){ return array( 'tax3' ); } );
print_r( apply_filters( 'example_filter', array()) );
Result is
Array ( [0] => tax3 )
I couldnt figure out how i can insert new element to this array with add_filter. What is proper way?
Filters work by calling each of the hooked callback functions (in priority order). The value to be filtered is passed to the first callback funtion. The returned value of that callback function is then passed to the second callback, and the returned value from that is passed onto third and so on, until all hooked callbacks have been fired. Whatever the last returned value is (i.e. the filtered value having passed through all the callbacks) is then taken to be the value after the filter has been applied.
In the above example, each filter is ignoring what is passed to it, and instead just returning its own new array.
(Side note: avoid anonymous functions as callbacks)
Try: