【WordPress】フックされている関数を調べる

フックにどんな関数がフックされているかを調べるには、
以下のコードを functions.php などに記述し、
テンプレートから関数を呼び出すとリストを表示できます。

<functions.php>
function show_hook_list ( $hook = '' ) {

	global $wp_filter;
	
	if ( empty($hook) ) {
		
		return false;
		
	}
	
	$buffer = '';
	
	if ( $wp_filter[ $hook ] ) {
		
		$buffer = "<h2>「{$hook}」にフックされている関数</h2>";
		
		foreach ( $wp_filter[ $hook ] -> callbacks as $priority => $cb ) {
			
			$buffer .= "<h3>Priority : {$priority}</h3>";
			$buffer .= "<ol>";
			
			foreach ( $cb as $key => $func ) {
				
				$buffer .= "<li>{$key}</li>";
				
			}
			
			$buffer .= "</ol>";
			
		}
		
	} else {
		
		$buffer = "<p>現在「{$hook}」に追加されている関数はありません。</p>";
		
	}
	
	echo esc_html( $buffer );
	
}
<テンプレート>
show_hook_list( フック名 );

フック名は例えば、「wp_head」などです。