I would like to output all apply_filters and do_action to give the user an overview of them.
If I use the Code
add_filter( 'wpErpOs_testFilter', 'wpErpOs_testFilter_callback', 10, 1 );
function wpErpOs_testFilter_callback( $testVar ) {
$testVar[] = "GM";
return $testVar;
}
$testVar = array("VW", "Audi");
$testVar = apply_filters('wpErpOs_testFilter', $testVar);
then the hooks are displayed in
global $wp_filter;.
If apply_filters is not called by add_filter, it does not appear in
global $wp_filter;;
How can I output all apply_filters and do_action, even those that are not called?
I would like to output all apply_filters and do_action to give the user an overview of them.
If I use the Code
add_filter( 'wpErpOs_testFilter', 'wpErpOs_testFilter_callback', 10, 1 );
function wpErpOs_testFilter_callback( $testVar ) {
$testVar[] = "GM";
return $testVar;
}
$testVar = array("VW", "Audi");
$testVar = apply_filters('wpErpOs_testFilter', $testVar);
then the hooks are displayed in
global $wp_filter;.
If apply_filters is not called by add_filter, it does not appear in
global $wp_filter;;
How can I output all apply_filters and do_action, even those that are not called?
apply_filters
and do_action
are NOT stored in $wp_filter
, ONLY add_filter
and add_action
are stored in $wp_filter
When you call apply_filters
or do_action
, core WordPress loops through all of the registered filters or actions (added by add_filter
and add_action
), looking for any matching ones, and then executes the associated function.
The only difference being actions which are stored in the $wp_actions
global var
These are the global vars available for hooks (actions/filters):
global $wp_filter, $wp_actions, $wp_current_filter;
$wp_actions
- stores actions that have already been fired with the number of times it was fired, each time do_action
is called this number is incremented.
You can look at the Query Monitor plugin which does handle tracking of hooks (actions/filters): https://github/johnbillion/query-monitor
Now with that said, one option you have that you can do, is to add your own action for the all
action, and then collect and save the filters/actions that are ran yourself.
Here's some sites that talk about this: https://www.smashingmagazine/2012/02/inside-wordpress-actions-filters/
Here's example code of doing this: https://gist.github/bueltge/1000143
https://developer.wordpress/plugins/hooks/advanced-topics/#debugging-with-the-all-hook