根据用户发表的文章数量计算用户的百分比排名,显示用户排名超过了百分之多少的用户

文 / @WordPress主题

小本本的自我介绍

大家好,我是小本本,今天要给大家介绍的是一个很有趣的功能,可以根据用户发表的文章数量计算出他在网站中的百分比排名。

jibai
开机速度超过了超过了百分之多少的用户

获取用户发表的文章数量


/*获取用户发表的文章数量*/
function num_of_author_posts($user_id){
    //根据作者ID获取该作者的文章数量
    global $wpdb;
    $user_id=(int)$user_id;
    $sql="SELECT COUNT(*) FROM {$wpdb->posts} WHERE post_author='$user_id' AND post_status='publish'";
    $coo=$wpdb->get_var($sql);
    return ($coo) ? $coo : 0;
}

根据用户所发表的文章数量,计算用户的百分比排名


/* get user post number sort */
function get_user_sort($user_id){
    //获取所有用户
    $users=get_users(array('fields'=>'ID'));
    $user_post_num=array();
    foreach($users as $user){
        $user_posts=num_of_author_posts($user);
        $user_post_num[next($users)]=$user_posts;
    }
    //获取当前用户的文章数量
    $current_user_posts=num_of_author_posts($user_id);
    //根据文章数量排列用户数组
    sort($user_post_num);
    $sort=array_search($current_user_posts,$user_post_num);//usersort
    $percent_sort=round((($sort/(count($user_post_num)-1))*100),0).'%';
    return $percent_sort;
}

以上功能实现最终实现的效果是类似是这样的:

paimingapp
TA目前的排名已超过86%的用户

严格意义上来讲,这个数据并不准确,事实上,我们也不需要这个用户太准确,只要给用户一个大概的数据,在用户发表文章的时候,这个数字会变化就行了,做到这一点,就能起到鼓励用户,增加活跃度的作用了。关于这个功能,如果你有更好的想法,欢迎通过评论和大家交流。

添加UTHEME为好友
扫码添加UTHEME微信为好友
· 分享WordPress相关技术文章,主题上新与优惠动态早知道。
· 微信端最大WordPress社群,限时免费入群。