Verwenden von wp-cli (1) Wenn ichwp user list
ausführe, erhalte ich eine Liste der Benutzer (in meinem Fall 2 Administratoren) auf der obersten Ebene von Multisite(2).
Ich habe 25 Sites mit verschiedenen Benutzern. Einige Benutzer haben an verschiedenen Standorten unterschiedliche Rollen. Wenn ich das Netzwerk-Flagwp user list --network
verwende, erhalte ich denselben Stilbericht abzüglich der Rollen Spalte. Der Bericht erstreckt sich jedoch über das standortübergreifende Netzwerk von Standorten.
Mein Ziel ist es, alle Administratoren jeder Site aufzulisten. Hier stecke ich fest. Anscheinend fügt das Hinzufügen des zusätzlichen Flags--role=administrator
der Konversation nichts hinzu. Es wird der gleiche Netzwerkbericht aller registrierten Benutzer ausgeführt.
Gibt es eine Kombination von Flags, die die Benutzer zusammen mit ihren Rollen auflisten?
Verweise:
Randnotiz: Es wäre auch praktisch, diese nach Site zu unterteilen.
Alle Administratoren jeder Site auflisten
Randnotiz: Diese nach Standort aufzuteilen wäre auch praktisch.
Lass uns das hier machen:
Wir können die url jeder Site mit den folgenden Angaben auflisten:
wp site list --field=url
Wir können alle Administratoren einer bestimmten Site auflisten mit:
wp user list --role=administrator --url=https://example.tld/site1
Diese Befehle können mit z.B. xargs
wie auf der wp-cli vorgeschlagen site :
wp site list --field=url \
| xargs -I % wp user list --role=administrator --url=%
Möglicherweise möchten wir auch | tail --lines=+2
verwenden, um den Header url des ersten Befehls zu überspringen, wie im hinteren Handbuch erläutert, und um Antworten wie diesen zu erhalten.
Vielen Dank an @grappler, der --field="url"
anstelle von --fields="url"
mit | tail --lines=+2
vorgeschlagen hat, um die Kopfzeile zu überspringen.
Wenn wir das url vor jeder Tabelle anzeigen wollen:
for url in $( wp site list --field="url" ); \
do \
echo $url; \
wp user list --role=administrator --url=$url; \
done;