|
板凳
楼主 |
发表于 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);
复制代码
|
|