如何列出用户及其发帖金额?

时间:2011-05-03 作者:user1893

我想列出我网站的所有用户以及每个用户的帖子数量。

到目前为止,我有下面的功能,但我不知道如何在count\\u user\\u帖子中使用每个用户的ID。。。

<ul>
<?php foreach ( get_users(\'order=DESC&orderby=post_count\') as $user ) : ?>
    <li style="color:#fff;"><span style="font-weight:bold;">
    <?php echo $user->display_name; ?></span> as <?php echo $user->user_nicename; ?> (<?php echo $user->post_count; ?> Posts)<br />
    <?php echo \'Posts made: \' . count_user_posts(1); ?>
    </li><br />
<?php endforeach; ?>
</ul>
我有foreach函数,但count\\u user\\u posts需要一个整数,我不会拉入每个用户ID来获取他们的帖子数量。

如果能帮上点忙,我将不胜感激。我知道这可能很简单。。。我对php:D有点陌生。非常感谢。

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

WordPress有一个wp_list_authors 函数,具有列出post计数的选项。

<?php
$args = array( \'orderby\' => \'post_count\', \'optioncount\' => true);
wp_list_authors( $args );
?> 
编辑:虽然可以按您的方式进行操作并使用count\\u user\\u posts(),但这将触发一个查询来检索用户,然后再进行其他查询以获取每个用户的计数。这是一种效率非常低的方法,如果有很多作者,可能会对性能产生重大影响。更好的方法是在一个查询中选择用户并统计所有帖子。如果你进去看看wp-includes/author-template.php 您将看到查询wp_list_authors 生成以执行此操作。

SO网友:Michael
<?php echo \'Posts made: \' . count_user_posts($user->ID); ?>
结束