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

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

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

相信很多朋友都见过这样一段话:“恭喜你,你的开机速度击溃了全国98%以上的电脑”,这个是360开机开机小助手的提醒,这个数字具体是怎么计算出来的,恐怕只有开发这个小助手的人知道。很简单的一个功能,却对提升用户黏度,活跃用户参与度起到了很大的作用。在社交网站上,能不能也加上一个类似的功能呢?当然是可以的,今天要给大家介绍的就是一个根据用户发表的文章数量计算用户在网站中百分比排名的功能。

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 ); /*user sort*/

	$percent_sort = round( ( ( $sort / (count( $user_post_num ) - 1) ) * 100 ), 0) . '%';
	return $percent_sort;
}

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

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

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

本站提供 WordPress 主题定制开发服务

本站长期承接WordPress主题、插件、基于 WooCommerce 的商店商城开发业务。 我们有7年 WordPress 开发经验, 如果你想用 WordPress 开发网站, 请联系 QQ: 470266798 或邮箱: 4626395@gmail.com 咨询。

当前有 2 条评论 ;

发表评论

电子邮件地址不会被公开。 必填项已用*标注

*