/** * Gets all callbacks for a hook. * * @see https://wpcodebook.com/wordpress-get-hook-callbacks/ * @see https://developer.wordpress.org/reference/classes/wp_hook/ * @see https://stackoverflow.com/questions/5224209/wordpress-how-do-i-get-all-the-registered-functions-for-the-content-filter */ function wpcodebook_hook_callbacks( $hook ) { global $wp_filter; return $wp_filter[ $hook ]->callbacks ?? array(); }
Example
Print all callbacks for the the_content
filter:
$callbacks = wpcodebook_hook_callbacks( 'the_content' ); echo '<pre>'; foreach ( $callbacks as $priority => $_callbacks ) { foreach ( $_callbacks as $callback_id => $callback_data ) { $callback = $callback_id; if ( isset( $callback_data['function'] ) ) { if ( is_array( $callback_data['function'] ) ) { $callback = sprintf( '%s::%s', get_class( $callback_data['function'][0] ), $callback_data['function'][1] ); } else { $callback = print_r( $callback_data['function'], true ); } } echo "{$callback}() [{$priority}]" . PHP_EOL; } } echo '</pre>';
Output (in the function [priority]
format):
WP_Embed::run_shortcode() [8] WP_Embed::autoembed() [8] do_blocks() [9] wptexturize() [10] wpautop() [10] shortcode_unautop() [10] prepend_attachment() [10] wp_replace_insecure_home_url() [10] capital_P_dangit() [11] do_shortcode() [11] wp_filter_content_tags() [12] convert_smilies() [20]