Skip to content

Instantly share code, notes, and snippets.

@sabrina-zeidan
Created December 20, 2023 15:38
Show Gist options
  • Save sabrina-zeidan/0dcef7871dc7c0b62ce6705e62e508c8 to your computer and use it in GitHub Desktop.
Save sabrina-zeidan/0dcef7871dc7c0b62ce6705e62e508c8 to your computer and use it in GitHub Desktop.
List all hooks firing in the order [WordPress]
//This goes in functions.php or plugin file or wherever
function dump_hook( $tag, $hook ) {
ksort($hook);
echo "<pre>>>>>>\t$tag<br>";
foreach( $hook as $priority => $functions ) {
echo $priority;
foreach( $functions as $function )
if( $function['function'] != 'list_hook_details' ) {
echo "\t";
if( is_string( $function['function'] ) )
echo $function['function'];
elseif( is_string( $function['function'][0] ) )
echo $function['function'][0] . ' -> ' . $function['function'][1];
elseif( is_object( $function['function'][0] ) )
echo "(object) " . get_class( $function['function'][0] ) . ' -> ' . $function['function'][1];
else
print_r($function);
echo ' (' . $function['accepted_args'] . ') <br>';
}
}
echo '</pre>';
}
function list_hooks( $filter = false ){
global $wp_filter;
$hooks = $wp_filter;
$hooks = json_decode( json_encode( $hooks ), true );
ksort( $hooks );
foreach( $hooks as $tag => $hook )
if ( false === $filter || false !== strpos( $tag, $filter ) )
dump_hook($tag, $hook);
}
//This goes wherever you need that executed
list_hooks();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment