+ 收藏我们

网站模板

网站模板搜索
404模板 营销型模板 外贸网站模板 单页模板 双语模板 标签大全
电话:18630701785
首页 > wordpress > 根据用户发表的文章数量计算用户的百分比排名,显示用户排名超过了百分之多少的用户 >

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

时间:2024-08-02 11:59:02

相信很多朋友都见过这样一段话:“恭喜你,你的开机速度击溃了全国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%的用户

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

有问题可以加入网站技术QQ群一起交流学习

本站会员学习、解决问题QQ群(691961965)

客服微信号:lpf010888

pbootcms教程

织梦教程

站长学院

SEO

wordpress

竞价教程

信息流

Title