WordPress在插件、模板中添加HOOK:do_action

该函数用于在代码逻辑中添加HOOK,后续代码只需要挂钩到该HOOK上就行了,方便拓展和二次开发。

do_action

该函数用于在代码逻辑中添加HOOK,后续代码只需要挂钩到该HOOK上就行了,方便拓展和二次开发。

参数

名称类型含义
tag字符串HOOK名称
arg混合类型|可选HOOK参数

源码

文件:wp-includes / plugin.php 450行

function do_action( $tag, ...$arg ) {
    global $wp_filter, $wp_actions, $wp_current_filter;
 
    if ( ! isset( $wp_actions[ $tag ] ) ) {
        $wp_actions[ $tag ] = 1;
    } else {
        ++$wp_actions[ $tag ];
    }
 
    // Do 'all' actions first.
    if ( isset( $wp_filter['all'] ) ) {
        $wp_current_filter[] = $tag;
        $all_args            = func_get_args(); // phpcs:ignore PHPCompatibility.FunctionUse.ArgumentFunctionsReportCurrentValue.NeedsInspection
        _wp_call_all_hook( $all_args );
    }
 
    if ( ! isset( $wp_filter[ $tag ] ) ) {
        if ( isset( $wp_filter['all'] ) ) {
            array_pop( $wp_current_filter );
        }
        return;
    }
 
    if ( ! isset( $wp_filter['all'] ) ) {
        $wp_current_filter[] = $tag;
    }
 
    if ( empty( $arg ) ) {
        $arg[] = '';
    } elseif ( is_array( $arg[0] ) && 1 === count( $arg[0] ) && isset( $arg[0][0] ) && is_object( $arg[0][0] ) ) {
        // Backward compatibility for PHP4-style passing of `array( &$this )` as action `$arg`.
        $arg[0] = $arg[0][0];
    }
 
    $wp_filter[ $tag ]->do_action( $arg );
 
    array_pop( $wp_current_filter );
}

付费内容概括

  1. 什么是HOOK?
  2. HOOK有什么用?
  3. 在WordPress中添加HOOk

为TA充电
共{{data.count}}人
人已赞赏
函数文档

WordPress底部资源函数:wp_footer

2021-5-25 15:48:31

函数文档

WordPress引入css样式表函数: wp_enqueue_style

2021-5-26 13:12:37

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
今日签到
有新私信 私信列表
搜索