像@shanebp 在OP的注释中建议您,这是函数激发的钩子之一wp_transition_post_status
, 在代码中搜索时很难找到它,因为它是一个动态的钩子,实际上激发它的代码行看起来像:
do_action( "{$new_status}_{$post->post_type}", $post->ID, $post );
在哪里
$new_status
是在取消更新后发布的新状态,并且
$post->post_type
正如你所猜测的那样,是post类型。
那么表单"publish_post"
是唯一一个可能的挂钩,在发布标准帖子类型的帖子时触发,使代码中的同一行示例也会触发"trash_page"
删除页面时,等等。
正如您在source 这是最后一个激活的状态转换挂钩。
有关其他信息和其他信息,请查看Post Status Transitions 抄本中的页面。
如果你介意看一下,函数wp_transition_post_status
在内部调用wp_insert_post
函数,在第行的当前版本中#3431 of wp-includes/post.php
.
你可以看到
if ( \'attachment\' !== $postarr[\'post_type\'] ) {
wp_transition_post_status( $data[\'post_status\'], $previous_status, $post );
}
明确不需要函数和相关挂钩
\'attachment\'
岗位类型。