当前位置:首页>WordPress建站>WordPress开发>WordPress函数:add_action(添加动作)

WordPress函数:add_action(添加动作)

WordPress 主题 CoreNext

说明

将函数连接到指定action(动作)。

Plugin API/Action Reference 上查看动作hook列表。wordpress核心调用do_action() 时触发动作。

用法

<?php
   add_action( $tag, $function_to_add, $priority,
         $accepted_args );
?> 

参数

$tag

(字符串)(必填)$function_to_add  所挂载的动作(action)的名称。(在Plugin API/Action Reference 上查看动作hook列表)。也可以是一个主题或插件文件内部的一个动作,或者特定的标签“all”,这个函数将被所有的钩子(hooks)调用。

默认值:None

$function_to_add

(回调)(必填)你希望挂载的函数的名称。注:在 PHP“回调”类型文档中 所罗列的字符串格式化的语法均可用。

默认值:None

$priority

(整数)(可选)用于指定与特定的动作相关联的函数的执行顺序。数字越小,执行越早,具有相同优先级的函数在它们被添加到动作的顺序执行。

默认值:10

$accepted_args

(整数)(可选)挂钩函数所接受的参数数量。在 WordPress1.5.1 及以后的版本中,挂钩函数可以是调用do_action() 或 apply_filters()时设置的参数。例如,comment_id_not_found动作将传递任何函数,若该函数将所请求的评论编号连接到该动作。

默认值:1

返回值

(布尔)总是True。

示例

简单的挂钩

博客发表新内容时用电子邮件通知朋友:

function email_friends( $post_ID )  
{
   $friends = 'bob@example.org, susie@example.org';
   wp_mail( $friends, "sally's blog updated", 'I just put something on my blog: http://blog.example.com' );

   return $post_ID;
}
add_action( 'publish_post', 'email_friends' );

接受的参数

挂钩函数可以选择接受从动作调用的参数,如果有任何要传递的话。在这个简单的例子中,echo_comment_id  函数需要 $comment_id 参数,该参数将在 comment_id_not_found 过滤钩子运行时通过 do_action() 传递。

function echo_comment_id( $comment_id ) 
{
   echo 'Comment ID ' . $comment_id . ' could not be found';
}
add_action( 'comment_id_not_found', 'echo_comment_id', 10, 1 );

注释

要找出一个动作的参数的ID和名称,只需搜索匹配 do_action() 调用的代码库。举例来说,如果你挂载到’save_post’,你会在 post.php 找到:

<?php do_action( 'save_post', $post_ID, $post ); ?>

你的 add_action 调用将是这样:

<?php add_action( 'save_post', 'my_save_post', 10, 2 ); ?> 

而且你的函数将是这样:

function my_save_post( $post_ID, $post )
{
   // do stuff here
}

在一个类中使用 add_action

当你的插件或主题使用类来创建时,使用 add_action 钩子,在类中添加 $this 和 函数名称 到你的 add_action 回调,像这样:

class MyPluginClass
{
    public function __construct()
    {
         //add your actions to the constructor!
         add_action( 'save_post', array( $this, 'myplugin_save_posts' ) );
    }
    
    public function myplugin_save_posts()
    {
         //do stuff here...
    }
}

函数历史

始见于 WordPress 1.2.0

源文件

add_action() 位于 wp-includes/plugin.php

  • 原文:http://codex.wordpress.org/Function_Reference/add_action
  • 编译:倡萌@WordPress大学
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

给TA打赏
共{{data.count}}人
人已打赏
欢迎关注WordPress大学公众号 WPDAXUE
WordPress开发

WordPress函数:wp_page_menu(页面菜单)

2013-5-11 8:28:24

WordPress开发

如何开发一个WordPress插件

2013-5-13 10:50:17

8 条回复 A文章作者 M管理员
  1. 逍遥乐

    如果禁用了文章版本,编辑时也会修改!有谁知道解决办法?

  2. 哈喽沃德

    这是翻译的官方文档吧,我想要那个可以挂的所有地方….. 分类页某个位置了,文章页某个位置了,页面了,能不能把所有能挂的地方列出来。

  3. zeroYang

    看不懂=.=

  4. 我在一个类里面看到这样一段代码 add_action( ‘wp_head’, ‘wp_admin_bar_header’ );但是类里面并没有wp_admin_bar_header这个函数,是在wp_includes/class-wp-admin-bar.php 里面的,这一段是什么意思?

  5. add_action在类中加入的,在类外怎么remove_action? 试了很多种方法一直删除失败

  6. 不错哦

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索