在 WordPress 中,这是完成的:
add_action( 'after_setup_theme', 'theme_setup' );
function theme_setup() {
...
}
WordPress 如何访问theme_setup()
给定字符串的函数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/