Quite often I encounter situations where it’s useful to know what functions are affecting a particular WordPress hook. It really helps me understand the ways that WordPress core, themes and plugins affect my site, specifically through the use of add_action()
and add_filter()
. This handy function make’s it pretty easy to discover what functions are attached to a given WordPress hook.
/**
* Print Filters For
*
* Discover what functions are attached to a given hook in WordPress.
*/
function print_filters_for( $hook = null ) {
global $wp_filter;
// Error handling
if ( !$hook )
return new WP_Error( 'no_hook_provided', __("You didn't provide a hook.") );
if ( !isset( $wp_filter[$hook] ) )
return new WP_Error( 'hook_doesnt_exist', __("$hook doesn't exist.") );
// Display output
echo '<details closed>';
echo "<summary>Hook summary: <code>$hook</code></summary>";
echo '<pre style="text-align:left; font-size:11px;">';
print_r( $wp_filter[$hook] );
echo '</pre>';
echo '</details>';
}
Usage
// Find all functions attached to 'the_content'
print_filters_for('the_content');
This will output the results into your environment like this:
<details closed>
<summary>Hook summary: <code>the_content</code></summary>
<pre style="text-align:left; font-size:11px;">
Array
(
[11] => Array
(
[capital_P_dangit] => Array
(
[function] => capital_P_dangit
[accepted_args] => 1
)
[do_shortcode] => Array
(
[function] => do_shortcode
[accepted_args] => 1
)
)
[10] => Array
(
[wptexturize] => Array
(
[function] => wptexturize
[accepted_args] => 1
)
[convert_smilies] => Array
(
[function] => convert_smilies
[accepted_args] => 1
)
[convert_chars] => Array
(
[function] => convert_chars
[accepted_args] => 1
)
[wpautop] => Array
(
[function] => wpautop
[accepted_args] => 1
)
[shortcode_unautop] => Array
(
[function] => shortcode_unautop
[accepted_args] => 1
)
[prepend_attachment] => Array
(
[function] => prepend_attachment
[accepted_args] => 1
)
)
)
</pre>
</details>
I’ve been using this myself for a while, hopefully someone else out there will find it useful.