|  | 
板凳
 
 
 楼主|
发表于 2021-5-29 17:21:06
|
只看该作者 
| Action Hook:做你想做的事 
 我们可以在 WordPress 发生某些事件的时候去执行自己需要的动作,比如保存文章,发布评论,改变文章的状态等等,在我们自己的插件里可以定义一些动作,然后把它们绑定到指定的事件上去执行。
 
 这种东西就是 Action Hook,在插件里定义自己想干的事儿,找到 WordPress 提供的合适的接口,也就是 Action Hook ,然后再把我们自己的动作挂到上面去执行。
 
 比如我想在用户的文章被发布以后,给文章的作者发一封通知的邮件 .. 我们可以先去定义这个发送邮件的动作 … 在我们自己的插件里面,添加一个函数 .. 名字可以自己定义,要注意这个函数的名字不能跟 WordPress 的其它函数的名字有冲突 .. 最好可以在自己的插件里面使用 class ..
 
 挂载动作:add_action
 
 定义好了要执行的动作,我们需要再去找一个合适的地方去使用它 .. 比如我想要的是用户的文章被发布以后,去发送邮件通知用户 ..
 
 我们可以在这个 Action_Reference 里面找一下 .. 或者也可以直接在 wordpress 的 developer 网站上的 reference 里面搜索一下 ..
 
 这里我找到了一个自己想要的 Hook ,就是这个 publish_post ,看名字大概可以猜到它会在什么时候被执行 … 再看一下它的描述 .. Runs when a post is published .. 这样大概就可以确定这是我需要用的东西。
 
 在 hook 上挂载我们自己定义的动作,要用到一个叫 add_action 的函数 … 它有几个参数,第一个参数是 hook 的名字 .. 第二个参数是我们自己定义的动作的名字 .. 第三个参数是一个优先级 .. 默认是 10 .. 第四个参数是支持的参数的数量 ..
 
 
 复制代码<?php
 
/*
Plugin name:hello demo
Plugin URI:http://bbs.5ucms.com/
Description:演示自定义插件
Author:shine
Author URI:http://bbs.5ucms.com/
Version:1.0
 */
 
function shine_notification($ID,$post){
  $author = $post->post_author;
  $email = get_the_author_meta('user_email',$author);
  wp_mail($email,'内容已发布',$post->post_title);
}
 
add_action('publish_post','shine_notification',10,2);
 | 
 |