WordPress学习——do_action()详解

少羽.
少羽.
少羽.
418
文章
87
评论
2019年2月8日18:49:07 评论 2,756 999字阅读3分19秒
广告也精彩

WordPress学习——do_action()详解do_action() 是WordPress的核心函数,该函数没有返回值。作用是创建一个钩子,在特定的地方执行插件或者主题开发者挂载的函数,一般存在于某个特殊的节点或者事件上。do_action() 的调用方法如下:

do_action( string $tag,  $arg = '' )

$tag:必填(字符串)。将要被指向动作的函数名称。

$arg:选填(混合型)。传递给钩子函数的其他参数。 默认为空。

该函数定义在 wp-includes/plugin.php 文件中:

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();
        _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;

    $args = array();
    if ( is_array($arg) && 1 == count($arg) && isset($arg[0]) && is_object($arg[0]) ) // array(&$this)
        $args[] =& $arg[0];
    else
        $args[] = $arg;
    for ( $a = 2, $num = func_num_args(); $a < $num; $a++ )
        $args[] = func_get_arg($a);

    $wp_filter[ $tag ]->do_action( $args );

    array_pop($wp_current_filter);
}

参考文档:https://developer.wordpress.orgreference/functions/do_action/

继续阅读
  • 我的微信
  • 微信扫一扫
  • weinxin
  • 我的微信公众号
  • 微信扫一扫
  • weinxin
广告也精彩
少羽.
  • 本文由 发表于 2019年2月8日18:49:07
  • 除非特殊声明,本站文章均为原创,转载请务必保留本文链接
WordPress纯代码实现独立相册功能 WordPress

WordPress纯代码实现独立相册功能

其实,这篇文章很早准备发了,一直拖,拖,拖硬生生拖到了现在,今天整合闲着,就更新一下博客吧! 想到这个文章,我忘记发了,今天就补上 hhh 正文 思路是前段时间写模板琢磨出来的,模板写废了,也不准备写...
广告也精彩
匿名

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: