WordPress 用户中心开发获取某用户发表的文章数量和评论数量

开发 WordPress 用户中心的时候,我们需要获取 WordPress 站点中某用户发表的文章数量和评论数量,因为这两个数据使用的情况相对较少,WordPress 并没有在数据库中提供这样的数据列,我们可以直接通过 SQL 查询获取这个数据。
获取用户发表的评论数量

function get_user_comments_count( $user_id ) {
	global $wpdb;
	$user_id = (int) $user_id;
	$sql     = "SELECT COUNT(*) FROM {$wpdb->comments} WHERE user_id='$user_id' AND comment_approved = 1";
	$coo     = $wpdb->get_var( $sql );
	return ( $coo ) ? $coo-1: 0;
}

获取用户发表的文章数量

function num_of_author_posts( $user_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;
}

或者直接用 WordPress 官方的一个函数:

上面的 SQL 查询比较复杂,如果每次获取文章数量和评论数量都要运行一下上面的两个 SQL 查询,对数据库负载多少会造成一些影响。为了提升性能,我们可以把这两个数据作为一个用户自定义字段存入数据中,每次用户发表文章或评论的时候更新一下这个数据。获取的时候直接使用 get_user_meta获取这两个数据就可以了。

声明:本站资源绿色无后门无广告,可放心下载。如无特殊说明或标注,均为本站原创发布,转载请注明出处!