Ce que je voudrais faire, c'est avoir une liste d'utilisateurs qui ont contribué au moins un message.
Je dois montrer ce qui suit:
[Photo d'utilisateur] | [Nom d'utilisateur] | [Nombre de messages utilisateur]
par exemple
[photo] Joe Bloggs (8)
J'ai pris un départ et j'ai emprunté cette voie:
<?php
$blogusers = get_users( 'orderby=post_count' );
foreach ( $blogusers as $user ) {
echo '<li>' . esc_html( $user->display_name ) . '</li>';
}
?>
Cependant, cela semble renvoyer tous les utilisateurs enregistrés sur le blog plutôt que ceux qui ont contribué, donc je ne le fais certainement pas correctement.
Je suis nouveau sur wordpress et PHP, donc toute aide serait appréciée.
posts
count
post-status
users
steakpi
la source
la source
Réponses:
Vous devez définir le
who
paramètre dansget_users
ÉDITER
Semble que je devais répondre rapidement. Le code dans votre question et dans ma réponse est le début de ce que vous voulez réaliser.
Je n'ai pas le temps de coder maintenant, de regarder le rugby, mais voici le code complet utilisé dans les vingt-quatorze pour afficher les auteurs et leur nombre de messages. J'espère que cela t'aides
Appelez-le simplement dans vos fichiers de modèle comme
la source
count_many_users_posts()
la fonction doit être utilisée pour l'efficacité, lors du comptage pour un ensemble de plusieurs utilisateurs.Il n'y a aucun moyen par défaut dans WordPress pour effectuer cette tâche, comme l'a souligné Pieter Goosen , existe l'argument
who
selonget_users()
lequel renvoie les utilisateurs qui peuvent publier, pas les utilisateurs qui ont posté.Cependant, vous pouvez utiliser
'pre_user_query'
pour ajouter uneJOIN
clause SQL pour obtenir uniquement les utilisateurs qui ont au moins une publication.Pour être honnête, lorsque vous interrogez des utilisateurs les commandant par nombre de publications, la jointure est déjà créée par WordPress, mais en utilisant un
OUTER LEFT JOIN
, donc même les utilisateurs sans publication sont renvoyés, donc la seule chose dont vous avez besoin est de remplacer leOUTER LEFT JOIN
par unINNER JOIN
la source
Depuis la version
4.3.0
, vous pouvez maintenant spécifier le paramètrehas_published_posts
de l'get_users();
appel de fonction.Exemple
Ressources
la source