WordPress发布文章钩子回调(Hook)

Wordpress发布文章钩子回调(Hook)

WordPress最好的部分之一是它的钩子/动作系统。

这个特殊的钩子系统是WordPress在某些事件发生时分配回调的方法。有一个似乎很混乱的事件是,当一个post被首次发布时,应该使用哪个钩子来检测它。

这里有publish_post钩子,但当你在一个文章已经发布后点击”更新”按钮时也会触发。

如果我们需要仅当发布文章触发的回调,又该如何处理呢?

使用transition_post_status

浏览一下WordPress文档和论坛,你肯定会看到一打解决方案,但没有一个能像transition_post_status钩子一样工作:

// Add the hook action
add_action('transition_post_status', 'send_new_post', 10, 3);

// Listen for publishing of a new post
function send_new_post($new_status, $old_status, $post) {
  if('publish' === $new_status && 'publish' !== $old_status && $post->post_type === 'post') {
    // Do something!
  }
}

当post从一种状态转换到另一种状态时,会发生transition_post_status。

你还可以可以通过post状态来进行不同的处理。我还添加了一个post_type检查,以确保文章是一篇博客文章,而不是一个页面。

希望可以帮助到刚接触wordpress钩子的朋友。

(1)
上一篇 2020年9月18日 上午10:17
下一篇 2020年9月18日 上午10:59

相关推荐

发表回复

登录后才能评论