网址导航网首页

嗨,欢迎来到25Qi网址导航

站长QQ:2598903095

WordPress

wordpress CMS主题用户中心开发 8:用户积分体系的形成

时间:2022-06-23 丨 作者:WordPress教程学习网站 丨 关键词:wordpress   CMS主题用户中心开发   8

在上一章WordPress CMS主题用户中心开发 7:author_write.php添加php处理代码 中,我们实现了用户在前台发表文章的功能。为了增加用户的粘性,以及实现wordpress CMS主题的其它一些需求,我们要为wordpress CMS主题添加用户积分体系,以此来体现用户在wordpress网站中的级别,对应相应的用户权限。

此处,WordPress主题的用户积分由几个部分组成:发表文章获取积分、发表评论获取积分、第天限制前5篇文章可以获取积分、每天前10个评论可以获取积分。即:用户积分=发表文章数+评论数。下面,我们就来完成wordpress CMS主题的用户积分体系。

第一步:每发表一篇文章增加积分

这个要在我们写好的author_write.php文件的php处理代码中添加积分代码,就是在发表文章成功的时候,我们增加该用的积分,每发表成功1篇,就增加2个积分。并限制每天只有前5篇文章可以获取积分。代码如下:

if ($status != 0){

//插入tags标签
wp_set_post_tags( $status, explode(",",$post_tags) );

$num = get_today_posts($user_id);//获取今天发表文章的总数
$author_write_num = 5; //后台设置 每天获积分几次,当然这里可以直接写一个数字

if($num <= $author_write_num){ //在今天发表的前 5 篇文章,记录积分

//发表成功,就记录一次当前用户的积分:积分=
$jifens_add = 2; //发表成功,就加2个积分
$jifen = get_user_meta($user_id,'user_jifen')[0] + $jifens_add;
update_user_meta($user_id,'user_jifen',$jifen);

}

wp_die('文章发表成功!','文章发表成功!');

}else{

wp_die('文章发表失败!','文章发表失败!');

}

上面代码中的加粗的部分,就是我们添加的积分代码。

第二步:添加获取当前发表的文章数。

要想限制每天只有前5篇文章可以获取积分,就必须获取到每天所发表的文章数,在functions.php代码中添加如下代码:

//获取今天作者发表的文章数
function get_today_posts($uid,$post_type ='post') {

global $wpdb;
$date = date("Y-m-d",time());
$sql = "SELECT COUNT(ID) FROM {$wpdb->posts} WHERE post_status='publish' AND post_author={$uid} AND post_type='post' AND (DATE_FORMAT(post_date,'%Y-%m-%d') = '{$date}')";
//return $sql;
$numposts = $wpdb->get_var($sql);
return $numposts;

}

第三步:每评论一次获取积分。

这里,当用户每评论一次,就增加1个积分。并且限制每天只有前10个评论或以获取积分。在wordpress CMS主题的functions.php文件中添加如下代码:

//每天前10次评论 给 积分
function add_comment_difen( $commentdata ) {

global $wpdb;
$currentUser = wp_get_current_user();
$uid = $currentUser->ID;
$sql = "SELECT comment_date FROM {$wpdb->comments} WHERE user_id={$uid} ORDER BY comment_date DESC LIMIT 1";
$last_post = $wpdb->get_var($sql);
// 间隔120秒,才能再次评论
if ( current_time('timestamp') - strtotime($last_post) < 120 ){

wp_die("

");

}

if(!empty($currentUser->roles)) {

$date = date("Y-m-d",time());
$sql = "SELECT COUNT(comment_ID) FROM {$wpdb->comments}
WHERE user_id={$uid} AND (DATE_FORMAT(comment_date,'%Y-%m-%d') = '{$date}')";
$num = $wpdb->get_var($sql); //获取当前用户的评论次数

$author_commen_num = get_option("swt_author_commen_num"); //后台设置 每天评论获几次积分
if($num < $author_commen_num){ //如果当天评论次数 < 11

$jifen = get_jefen($uid); //获取当前用户积分
update_user_meta($uid,'user_jifen',$jifen+1); //

}

      }
return $commentdata;

}
add_action( 'preprocess_comment' , 'add_comment_difen', 20);

通过上面的3步,我们的wordpress CMS主题基本上就完成了积分体系。当然,在后期,我们还可以为积分体系添加新的成员,如:推为精品文章可以获10个积分、获取点赞就增加1个积分等等。

 

在线随机小姐姐图片换一批
最新收录
  • 安庆人事考试培训网

    安庆人事考试培训网:承办公务员、军队转业干部和专业技术人员继续教育培训工作;协助行业主管部门开展专业技术人员继续教育专业课培训和人事培训基地建设;承办机关事业单位技术工人等级考试的培训和各类社会化培训工作;组织培训考务人员;在政策规定范围内,开展人事考试考前培训和其他社会化培训业务。

  • 山东自学考试网

    山东自考网为广大山东自考人提供山东自考资讯、山东自考培训、山东自考历年真题下载,第1时间发布山东自考报名时间、山东自考成绩查询、山东自考网上报名、山东自考网校和山东自考书等相关资料和信息,全心全意为广大山东自考人服务

  • 上海公务员考试网

    上海公务员考试网发布2023年上海公务员考试报名时间、报名政策、职位表、考试大纲、上海公务员考试报名入口以及历年真题等辅导信息、申论热点,上海市公务员考试网承诺每日更新……

  • 浙江公务员考试网

    浙江公务员考试网:2023年浙江公务员考试时间、2023年浙江公务员考试职位表、公告大纲来自浙江省公务员局官网,2023年浙江公务员考试报名入口、报考条件、历年真题、成绩查询

  • 南充市教育考试院

    南充市教育考试院官方网站—咨询电话:0817-2239002

  • 在职研究生网

    在职研究生网第一时间公布在职硕士、在职博士等在职研究生招生信息,并为学员提供在职研究生报名、在职研究生招生简章及同等学力申硕、非全日制研究生、中外合作办学、高级研修班等咨询服务。