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,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',$new_pretige);
}
add_action('publish_course','publish_course_prestige');
总结以上是内存溢出为你收集整理的WordPress发布文章publish_post钩子对自定义文章类型不起作用怎么办?全部内容,希望文章能够帮你解决WordPress发布文章publish_post钩子对自定义文章类型不起作用怎么办?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)