WordPress publish_post挂钩不为自定义帖子类型触发

Mar*_*rkP 1 php wordpress hook custom-post-type

我目前正在使用WP Job Board Manager插件做一些工作,我想创建一个在发布新作业时触发的功能.

我做的第一件事是创建一般钩子来找出帖子类型是什么:

function newJobAdded() {
    $posttype = get_post_type( $post );
    mail('email@email.com','new job published',$posttype);


 }
add_action( 'publish_post', 'newJobAdded' );
Run Code Online (Sandbox Code Playgroud)

这给我发了一封电子邮件告诉我帖子类型是:job_listing.然后我创建了一个新函数,只有在自定义帖子类型为job_listing时才会触发

function newJobAdded() {

   $posttype = "job_listing";

   if ($post->post_type == $posttype) {
    mail('email@email.com','new job published','done new job publish');
   }


 }
add_action( 'publish_post', 'newJobAdded' );
Run Code Online (Sandbox Code Playgroud)

但是,当我这样做时没有任何反应.我错过了一些简单化和无趣的东西吗?

Vid*_*a L 11

'publish_post'操作是特定于帖子类型的.因此,如果您有自定义帖子类型,则需要更改您使用的钩子.如果你的帖子类型是job_listing,你应该使用的钩子是publish_job_listing.

function newJobAdded($ID, $post ) {
    mail('email@email.com','new job published','done new job publish');
 }
add_action( 'publish_job_listing', 'newJobAdded', 10, 2 );
Run Code Online (Sandbox Code Playgroud)

  • 尝试添加条件语句,如 if( ( $post['post_status'] == 'publish' ) && ( $_POST['original_post_status'] != 'publish' ) ) (2认同)