WordPress 中 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 函数。

除了上述区别之外,还有几个需要注意的点:

  1. do_action 函数可以传递参数,而 add_action 函数在定义时可以设定最多接受几个参数。
  2. do_action 函数会触发所有监听该动作的函数,而 add_action 函数只是定义了一个动作的监听器。
  3. 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/

(0)
牛奇网牛奇网
上一篇 2022年12月22日 上午11:32
下一篇 2022年12月22日 下午1:14

相关推荐

发表回复

登录后才能评论