按帖子数量对用户进行排序(包括自定义帖子类型)

时间:2013-11-19 作者:chowwy

我正在使用下面的函数为用户统计帖子(包括自定义帖子类型)。我正在整理一个用户列表,并希望通过此计数函数对其进行排序。get\\u users()函数的orderby选项是有限的,post\\u count不包括自定义的post类型。如何使用此功能订购用户?

功能:

function foo_count_posts( $userid, $post_type = \'\', $post_status = \'publish\') {
    global $wpdb;

    $query = "SELECT COUNT(*) FROM $wpdb->posts WHERE post_author = $userid AND (post_type = \'post\' OR post_type=\'foo\') AND post_status = \'$post_status\'"; 
    $counter = $wpdb->get_var($query); 

    return apply_filters( \'get_usernumposts\', $counter, $userid );  
}
然后调用函数获取计数:

echo foo_count_posts($user_id);

1 个回复
SO网友:Maruti Mohanty

我假设上面的函数可以很好地为您获取包括custom post types 您只需要在使用此计数排序用户时得到帮助。

我假设您已经有了用户ID列表,比如数组$userids

让我们使用asortarsort 这样做

将上述代码放入活动主题的functions.php 在需要订购的文件中归档并使用以下内容

$arr = array();
foreach( $userids as $userid ) {
    $arr[$userid] = foo_count_posts($userid);
}
现在$arr 是以userid为键、post count为值的数组

要获取升序,请使用

asort($arr);
var_dump($arr);
要获取降序,请使用

arsort($arr);
var_dump($arr);

结束

相关推荐

Batch users creation

我想在密码验证后与大约140个用户共享一个文档,我想避免手动创建所有140个帐户。是否可以快速创建它们?UPDATE: 要添加的用户名存储在文本文件中。问题集中在批处理用户的创建上,因为我将创建一个密码保护区域,所有用户都可以在该区域下载文档。