萨龙网络
登录
首页-WordPress文章-WordPress Functions-正文

WordPress 功能函数—— add_action(将函数挂接到特定的操作上)

萨龙龙萨龙龙
WordPress Functions
6年前
0
0
2.12W

WordPress核心执行期间,在特定点执行时或特定事件发生时,Actions是钩子。插件可以指定使用Action API在这些点上执行其一个或多个PHP函数。

$tag

(string)(必填)连接到 $function_to_add 的操作名称是被挂钩。

$function_to_add

(callable)(必填)希望调用的函数的名称。

$priority

(int)(可选)用于指定与特定操作关联的函数执行的顺序。较低的数字对应于较早的执行,具有相同优先级的函数按照它们被添加到操作中的顺序执行。

默认值:10

$accepted_args

(int)(可选)函数接受的参数个数。

默认值:1

(true)将永远返回true。

来源

文件:wp-includes/plugin.php

function add_action( $tag, $function_to_add, $priority = 10, $accepted_args = 1 ) {
    return add_filter( $tag, $function_to_add, $priority, $accepted_args );
}

更多信息

用法

add_action( $hook, $function_to_add, $priority, $accepted_args );

要查找操作的参数的数量和名称,只需在代码库中搜索匹配的do_action()调用。例如,如果您要挂钩'save_post',您会在post.php中找到它:

do_action( 'save_post', $post_ID, $post, $update );

add_action调用如下所示:

add_action( 'save_post', 'wpdocument_my_save_post', 10, 3 );

函数调用是:

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

用户贡献的笔记

与类一起使用

要在使用类构建插件或主题时使用add_action(),需要使用数组可调用语法。您可以将函数作为数组传递给add_action(),第一个元素是$this,然后是类方法的名称,如下所示:

/**
 * Class WP_Docs_Class.
 */
class WP_Docs_Class {
 
    /**
     * Constructor
     */
    public function __construct() {
        add_action( 'save_post', array( $this, 'wpdocument_save_posts' ) );
    }
 
    /**
     * Handle saving post data.
     */
    public function wpdocument_save_posts() {
        // do stuff here...
    }
}
 
$wpdocumentclass = new WP_Docs_Class();

与类中的静态函数一起使用

如果类是静态调用的,方法必须如下所示,因为$this不可用。如果类被扩展,也可以这样做。使用以下:

/**
 * Class WP_Docs_Static_Class.
 */
class WP_Docs_Static_Class {
 
    /**
     * Initializer for setting up action handler
     */
    public static function init() {
        add_action( 'save_post', array( get_called_class(), 'wpdocument_save_posts' ) );
    }
 
    /**
     * Handler for saving post data.
     */
    public static function wpdocument_save_posts() {
        // do stuff here...
    }
}
 
WP_Docs_Static_Class::init();

简单钩子

每当你的博客上有文章发表时,给一些朋友发邮件:

/**
 * Send email to my friends.
 *
 * @param int $post_id Post ID.
 * @return int Post ID.
 */
function wpdocument_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', 'wpdocument_email_friends' );

接受的参数

如果设置要传递参数,则挂接函数可以选择性地接受来自操作调用的参数。在这个简单的示例中,echo_comment_id函数接受$comment_id参数,当使用comment_id_not_found过滤器钩子运行do_action()调用时,该参数将自动传递给该参数。

/**
 * Warn about comment not found
 *
 * @param int $comment_id Comment ID.
 */
function echo_comment_id( $comment_id ) {
    printf( 'Comment ID %s could not be found', esc_html( $comment_id ) );
}
add_action( 'comment_id_not_found', 'echo_comment_id', 10, 1 );

在类中使用时传递参数

要在用add_action调用类中的方法时将参数传递给它,可以执行以下操作:

public function __construct() {
    // Actions
    add_action('init', array($this, 'call_somefunction'));
}
 
/**
 *    Intermediate function to call add_action with parameters
 */
public function call_somefunction() {
    $this->somefunction('Hello World');
}
 
/**
 *    Actual function that does something
 */
public function somefunction($text) {
    echo $text;
}
标签:
本文原创,作者:萨龙龙,其版权均为萨龙网络所有。
如需转载,请注明出处:https://salongweb.com/wordpress-functions-add-action.html
萨龙龙

萨龙龙

侠客
一个平平常常的人,热爱生活、旅行和摄影,骑行去过西藏,一直计划再去。14年从江西骑行来到大理,现栖居于洱海边,食人间烟火,过简单生活,做简约设计!
1342.13M456.51W3.77W
分享:
WordPress 功能函数—— addslashes_gpc(添加斜杠以转义字符串)
WordPress 功能函数—— addslashes_gpc(添加斜杠以转义字符串)上一篇
WordPress 功能函数—— add_blog_option(为指定的博客ID添加新选项)下一篇
WordPress 功能函数—— add_blog_option(为指定的博客ID添加新选项)
相关文章
总数:7

WordPress 功能函数—— add_clean_index(向指定的表添加索引)

描述 向指定的表添加索引。 用法 add_clean_index(string$table,st…
萨龙龙萨龙龙
WordPress Functions
6年前
0
0
9.01K
0

WordPress 功能函数——absint(将值转换为非负整数)

用法 absint(mixed$maybeint) 将值转换为非负整数。 参数 $maybeint (mixed)(必需)您希望…
萨龙龙萨龙龙
WordPress Functions
6年前
0
0
1.04W
0

WordPress 功能函数—— add_comments_page(将子菜单页添加到评论主菜单上)

描述 此函数具有一个功能,该功能将用于确定菜单中是否包含页面。 连接到处理页面输出的函数也必须检查用户是否具有所需的…
萨龙龙萨龙龙
WordPress Functions
6年前
0
0
1.28W
0

WordPress 功能函数—— activate_plugin(已激活的插件不会再次尝试激活)

描述 已激活的插件不会再次尝试激活。 它的工作方式是在尝试包含插件文件之前将重定向设置为错误。如果插件失败,则重定向…
萨龙龙萨龙龙
WordPress Functions
6年前
0
0
1.24W
0

WordPress 功能函数—— addslashes_gpc(添加斜杠以转义字符串)

描述 添加斜杠以转义字符串。 如果设置了magic_quotes_gpc,将首先删除斜杠。 用法 …
萨龙龙萨龙龙
WordPress Functions
6年前
0
0
8.04K
0

WordPress 功能函数—— add_blog_option(为指定的博客ID添加新选项)

描述 您不需要序列化值。如果需要序列化值,则在将其插入数据库之前将其序列化。请记住,资源不能序列化或作为选项添加。 …
萨龙龙萨龙龙
WordPress Functions
6年前
0
0
9.10K
0

WordPress 功能函数—— activate_plugins(激活多个插件)

描述 激活多个插件。 当WP_Error返回,但这并不意味着该插件的一个有错误。这意味着一个或多个插件文件路径无效。…
萨龙龙萨龙龙
WordPress Functions
6年前
0
0
8.05K
0
评论表单游客 您好,欢迎参与讨论。
请输入昵称
请输入邮箱
请输入网址
0 / 0
评论列表
总数:0
萨龙网络
没有相关内容