do_action() 和 add_action() 的区别
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 函数定义的动作是在下一次加载页面时执行。
示例代码:文章来源:https://www.toymoban.com/news/detail-447581.html
// 在 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.toymoban.com/news/detail-447581.html
到了这里,关于wordpress 中do_action() 和 add_action() 的区别的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!