超过一篇帖子的作者总数

时间:2013-05-21 作者:Joe

<?php 
$users = $wpdb->get_var("SELECT COUNT(ID) FROM $wpdb->users");
echo \'(\', count( get_users( array( \'role\' => \'author\' ) ) ); echo \')\' 
?>

code by Jan Beck

我需要知道显示至少在我的博客上发布和/或发布过内容的作者总数的最佳选项是什么。

目前代码正在统计所有作者,即使他们没有发布任何内容。请让我知道是否有一个简单的解决方案。我查看了整个wordpress codex,还没有找到解决方案。

1 个回复
最合适的回答,由SO网友:s_ha_dum 整理而成

我相信wp_list_authors 会做你想做的事。您可以使用echo 参数false并计算结果。

$authors = wp_list_authors(
  array(
    \'echo\'=>false,
    \'html\'=>false
  )
);
echo var_dump($authors);
echo count (explode(\',\',$authors));
或者,或者,也可以不那么挥霍地窃取该函数的SQL.

$authors = $wpdb->get_results(
  "SELECT DISTINCT post_author, COUNT(ID) AS count 
  FROM $wpdb->posts 
  WHERE post_type = \'post\' 
  AND " . get_private_posts_cap_sql( \'post\' ) . " 
  GROUP BY post_author"
);
var_dump($authors); 
echo count($authors); 
它们略有不同,第一个默认情况下忽略管理用户,但有一个参数可以改变这一点。

结束

相关推荐

如何使用GET_USERS获取用户描述?

我正在使用这段代码列出用户及其信息。我的问题是描述没有显示出来。显然,这是因为描述位于“user\\u meta”下,而不是“users”。但我该怎么解决呢?<?php $blogusers = get_users(\'include=2,3,4,5,6,7,8\'); foreach ($blogusers as $user) { echo \'<li>\' . get_avatar($user->I