为什么自定义挂钩函数也适用于更新?

Why custom hook function works on update too?

我在 WordPress 中制作了一个简单的钩子来运行一个函数。我认为使用 publish_"custom_post_type_name" 只会在发布自定义 post 类型的新 post 时触发该功能。但似乎并非如此。即使在我更新 post 时也会调用该函数。如何只在post第一次发布时才调用函数?

我的钩子:

add_action('publish_news', 'notification');
function notification(){

}

这是因为 post 状态在发布前是 draft。您可以在通知方法中设置一个条件来检查 post 的状态,如下所示:

add_action('publish_news', 'notification');
function notification($post){
  global $post;
  if($post->post_status == 'draft'){
      //do something here
  }
}

这只会在 post 发布时触发您想要执行的操作。