do_action 和 add_action 都是 WordPress 中的函数,它们都用于向 WordPress 的插件或主题中添加动作。
do_action 用于触发插件或主题中已定义的动作。如果插件或主题中定义了某个动作,那么可以使用 do_action 函数来触发这个动作。这样,在插件或主题中可以使用 add_action 函数来监听这个动作,并执行相应的函数。
举个例子,假设插件中定义了一个名为 send_email 的动作,那么插件可以使用 do_action(‘send_email’) 来触发这个动作。如果其他插件或主题想要监听这个动作,就可以使用 add_action 函数来实现。
add_action 用于向插件或主题中添加动作。如果希望在插件或主题中执行某些代码,可以使用 add_action 函数来监听某个动作,并在动作触发时执行代码。
使用 add_action 函数的方式如下:
add_action( $hook, $function_to_add, $priority, $accepted_args );
其中:
$hook
是动作的名称。$function_to_add
是要执行的函数的名称。$priority
是执行优先级,数字越小优先级越高。$accepted_args
是要传递给函数的参数个数。
举个例子,假设想要在
每次发布文章时发送邮件通知,可以使用以下代码来实现:
function send_notification_email( $post_id ) {
// 获取文章信息
$post = get_post( $post_id );
$author = get_userdata( $post->post_author );
$email = $author->user_email;
// 发送邮件
wp_mail( $email, '新文章发布通知', '您发布的文章已经发布成功!' );
}
add_action( 'publish_post', 'send_notification_email', 10, 1 );
在这个例子中,使用了 add_action
函数来监听 publish_post
动作,并在动作触发时执行 send_notification_email
函数。
除了上述区别之外,还有几个需要注意的点:
do_action
函数可以传递参数,而add_action
函数在定义时可以设定最多接受几个参数。do_action
函数会触发所有监听该动作的函数,而add_action
函数只是定义了一个动作的监听器。do_action
函数触发的动作是在当前页面执行,而add_action
函数定义的动作是在下一次加载页面时执行。
示例代码:
// 在 functions.php 文件中定义一个动作
function my_action_callback() {
echo 'This is my action.';
}
add_action( 'my_action', 'my_action_callback' );
// 在页面模板文件中触发该动作
do_action( 'my_action' );
在上述代码中,add_action
函数在 functions.php
文件中定义了 my_action
动作的监听器,并设定回调函数为 my_action_callback
。而在页面模板文件中,使用 do_action
函数触发了 my_action
动作,从而执行了 my_action_callback
函数。
作者:牛奇网,本站文章均为辛苦原创,在此严正声明,本站内容严禁采集转载,面斥不雅请好自为之,本文网址:https://www.niuqi360.com/wordpress/difference-between-do_action-and-add_action/