web-dev-qa-db-fra.com

Comment lister les utilisateurs et leur montant?

Je veux lister tous les utilisateurs de mon site et la quantité de messages que chaque utilisateur a.

Jusqu'à présent, j'ai la fonction ci-dessous, mais je ne sais pas comment extraire l'ID de chaque utilisateur à utiliser dans le compte_utilisateur_posts ...

<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>

Je n'ai pas encore de fonction, mais count_user_posts nécessite un entier. Je n'insère pas chaque ID utilisateur pour récupérer son montant.

J'apprécierais un peu d'aide avec ceci. Je sais que c'est probablement quelque chose de simple ... Je suis nouveau sur php: D. Merci beaucoup.

1
user1893

WordPress a une fonction wp_list_authors avec la possibilité de répertorier le nombre de publications.

<?php
$args = array( 'orderby' => 'post_count', 'optioncount' => true);
wp_list_authors( $args );
?> 

EDIT: Bien qu'il soit possible de le faire comme vous le faites et d'utiliser count_user_posts (), cela déclenchera une requête pour récupérer les utilisateurs, puis des requêtes supplémentaires pour obtenir le nombre de chaque utilisateur. c'est une manière très inefficace de faire cela et peut avoir un impact significatif sur les performances si vous avez beaucoup d'auteurs. Un meilleur moyen consiste à sélectionner des utilisateurs et à compter tous les messages dans une requête. Si vous regardez dans wp-includes/author-template.php, vous verrez la requête que wp_list_authors génère pour le faire.

2
Milo
<?php echo 'Posts made: ' . count_user_posts($user->ID); ?>
1
Michael