WordPress文章涉及的一些钩子Hook函数

前言

今天小薛给大家带来一部分可能常用的WordPress文章涉及的一些钩子Hook函数。

什么是钩子?

钩子是用一段代码添加/修改另外一段代码的方式,是 WordPress插件和主题与 WordPress 内核交互的基础,钩子在 WordPress 内核中也被广泛使用。WordPress 中有两种钩子,Action 和 Filter。使用钩子时,我们需要先编写一个自定义函数作为钩子的回调函数,然后使用 add_action 或 add_filter 函数将我们的回调函数挂载到指定的 Action 或 Filter 上。

Action 可以让我们在函数执行的某个时间点添加一些自定义操作(如输出内容到文章尾部),Filter 和 Action 类似,不同的是我们可以通过 Filter 修改并返回数据,因此,挂载到 Filter 上的函数会接受一些变量,并返回修改后的变量。简单来说,Action 用来添加功能,Filter 用来修改数据。

WordPress 内核提供了很多钩子,来帮助开发者开发WordPress主题或插件。通过创建自定义钩子,我们也可以让第三方开发者添加或修改我们的功能。

部分Hook函数

publish_post:参数一个($post_ID),点击发布文章时就会被触发;

save_post:参数一个($post_ID),发布或更新文章时就会被触发;

edit_post:参数两个($post_ID, $post),只要编辑已经存在的文章就会被触发;

publish_future_post:参数一个($post_ID),到定时发布文章设定的时间点就会被触发,如果设定的时间早于发布时间,不会被触发;

transition_post_status:参数三个($new_status, $old_status, $post),实现功能比较强大,可以根据文章发布状态的变化实现一些功能。

{$old_status}to{$new_status}:参数一个($post),比如 draft_to_publish 是通常的文章发布事件

future_to_publish 则可以用来处理定时文章发布事件。

post_updated:参数三个($post_ID, $post_after, $post_before),已存在文章更新了就会被触发。

其中 $post 为文章对象;$post_ID 为文章 ID;$post_status 为文章对象的发布状态(包括 new,publish,future,draft,pending,private,trash,auto-draft 等);$post_type 为文章对象的发布类型(包括 post,page,attachment,revision 等)。

对比上面的函数说明可以发现,post_updated 事件是最强大的,可以获取到文章修改前后的所有内容,参数较多;其次是 transition_post_status 事件,功能也比较强;接着是 {$old_status}to{$new_status} 事件,针对性较强,可以对特定情况进行事件抓取;而 publish_post、save_post、edit_post 和 publish_future_post 这四个事件就相对比较简单,可以视情况而用。

© 版权声明
THE END
喜欢就支持一下吧
点赞9赞赏 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容