【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」などです。