Was ich tun möchte, ist eine Liste von Benutzern zu haben, die mindestens einen Beitrag beigetragen haben.
Ich muss folgendes zeigen:
[Benutzerfoto] | [Benutzername] | [Anzahl der Benutzerbeiträge]
z.B
[Foto] Joe Bloggs (8)
Ich machte einen Anfang und ging diesen Weg:
<?php
$blogusers = get_users( 'orderby=post_count' );
foreach ( $blogusers as $user ) {
echo '<li>' . esc_html( $user->display_name ) . '</li>';
}
?>
Dies scheint jedoch nur alle Benutzer zurückzugeben, die im Blog registriert sind, und nicht diejenigen, die dazu beigetragen haben, sodass ich es mit Sicherheit nicht richtig mache.
Ich bin neu in WordPress und PHP, daher wäre jede Hilfe dankbar.
posts
count
post-status
users
Steakpi
quelle
quelle
Antworten:
Sie müssen den
who
Parameter in einstellenget_users
BEARBEITEN
Scheint, als hätte ich zu schnell geantwortet. Der Code in Ihrer Frage und in meiner Antwort ist der Anfang dessen, was Sie erreichen möchten.
Ich habe jetzt keine Zeit zum Codieren, um Rugby zu schauen, aber hier ist der vollständige Code, der in den vierundzwanzig Jahren verwendet wurde, um Autoren und ihre Anzahl an Posts anzuzeigen. Hoffe das hilft
Nennen Sie es einfach in Ihren Vorlagendateien als
quelle
count_many_users_posts()
Die Funktion sollte aus Effizienzgründen verwendet werden, wenn für mehrere Benutzer gezählt wird.Wie Pieter Goosen betonte, gibt es in WordPress keine Standardmethode für diese Aufgabe. Es gibt das Argument
who
dafür,get_users()
dass Benutzer zurückgegeben werden, die Beiträge verfassen können , nicht die Benutzer, die Beiträge veröffentlicht haben.Sie können
'pre_user_query'
jedoch eineJOIN
SQL-Klausel hinzufügen , um nur Benutzer mit mindestens einem Beitrag abzurufen.Um ehrlich zu sein, wenn Sie Benutzer abfragen, die sie nach Anzahl der
OUTER LEFT JOIN
Beiträge bestellen, wird der Join bereits von WordPress erstellt, aber mit a werden auch Benutzer ohne Beiträge zurückgegeben. Sie müssen also nur denOUTER LEFT JOIN
durch a ersetzenINNER JOIN
quelle
Seit der Version
4.3.0
können Sie nun den Parameterhas_published_posts
für denget_users();
Funktionsaufruf angeben .Beispiel
Ressourcen
quelle