WordPress では、これが行われます。
add_action( 'after_setup_theme', 'theme_setup' );
function theme_setup() {
...
}
theme_setup()
WordPressは文字列を指定して関数にどのようにアクセスしますtheme_setup
か?
最初に、関数 add_action がすべてのパラメーターで呼び出されます。この関数のコードを以下に示します。この関数は興味深いものではありません。これは add_filter 関数の単なるラッパーであり、より興味深いものです。
function add_action($tag, $function_to_add, $priority = 10, $accepted_args = 1) {
return add_filter($tag, $function_to_add, $priority, $accepted_args);
}
関数 add_filter は、関数に提供されたデータをグローバル変数に保存します。コードは次のとおりです。
function add_filter($tag, $function_to_add, $priority = 10, $accepted_args = 1) {
global $wp_filter, $merged_filters;
$idx = _wp_filter_build_unique_id($tag, $function_to_add, $priority);
$wp_filter[$tag][$priority][$idx] = array('function' => $function_to_add, 'accepted_args' => $accepted_args);
unset( $merged_filters[ $tag ] );
return true;
}
これで、必要なものがすべてグローバル変数に保存され、かなり長い関数 do_action から関数名を呼び出すことができます。しかし、最も興味深い部分は最後にあります。
call_user_func_array($the_['function'], array_slice($args, 0, (int) $the_['accepted_args']));
関数 call_user_func_array は魔法です。詳細については、PHP マニュアルを参照してください。
ソースコードを見始めることができます...
ここから始めることができます... https://developer.wordpress.org/reference/functions/add_action/