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

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

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 官方的一个函数:

<?php $user_post_count = count_user_posts( $userid , $post_type ); ?>

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

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

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

发表评论

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

*