0

在 WordPress 中,这是完成的:

add_action( 'after_setup_theme', 'theme_setup' );
function theme_setup() {
  ...
}

WordPress 如何访问theme_setup()给定字符串的函数theme_setup

4

2 回答 2

2

首先,使用所有参数调用函数 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 手册中了解更多信息

于 2013-01-27T10:02:00.230 回答
0

您可以开始查看源代码...

你可以从这里开始...... https://developer.wordpress.org/reference/functions/add_action/

于 2013-01-27T09:54:41.027 回答