正文 评论

WordPress发布文章publish_post钩子对自定义文章类型不起作用怎么办?

WordPress 的 publish_post 钩子针对的是文章(帖子)类型,适用于 WordPress 站点的 post 类型的文章。如果想要发布页面时执行某些动作,对应钩子应该是 publish_page;如果你想发布某个自定义类型的文章,如课程类型course,那么对应钩子应该是 publish_course。针对你上面的代码,你可以如下修改:

//发布文章或提问奖励声望function publish_article_prestige( $post_ID ){    global $wpdb;     $user_id = get_post($post_ID)->post_author;     $old_pretige = get_user_meta( $user_id,\"shengwang\",true);    $apply_pretige = 5;    $post_cat = get_the_category($post_ID)[0]->cat_ID;    if($post_cat == 2){      $publish_type = \"publish_question\";    } else {      $publish_type = \"publish_post\";    }    $date = date(\'Y-m-d H:i:s\');    $new_pretige = $old_pretige+$apply_pretige;    $wpdb->insert(\'wp_prestige_log\', array(        \'user_id\' => $user_id,        \'post_id\' => $post_ID,        \'old\' => $old_pretige,         \'apply\' => $apply_pretige,         \'new\' => $new_pretige,         \'type\' => $publish_type,         \'time\' => $date,     ));   update_user_meta($user_id,\'shengwang\',$new_pretige);}add_action(\'publish_post\',\'publish_article_prestige\');//发布课程(自定义文章类型)奖励声望function publish_course_prestige( $post_ID ){    global $wpdb;     $post_type = get_post_type( $post_ID );    $user_id = get_post($post_ID)->post_author;     $old_pretige = get_user_meta( $user_id,\"shengwang\",true);    $apply_pretige = 10;    $publish_type = \"publish_course\";    $date = date(\'Y-m-d H:i:s\');    $new_pretige = $old_pretige+$apply_pretige;    $wpdb->insert(\'wp_prestige_log\', array(        \'user_id\' => $user_id,        \'post_id\' => $post_ID,        \'old\' => $old_pretige,         \'apply\' => $apply_pretige,         \'new\' => $new_pretige,         \'type\' => $publish_type,         \'time\' => $date,     ));   update_user_meta($user_id,\'shengwang\',$new_pretige);}add_action(\'publish_course\',\'publish_course_prestige\');

回复

暂无评论