wake-up-neo.net

Kann wp-cli alle Benutzer und ihre Rollen auf allen Sites in einer Instanz mit mehreren Standorten anzeigen?

Auflisten von Benutzern mit mehreren Standorten

Verwenden von wp-cli (1) Wenn ichwp user listausführe, erhalte ich eine Liste der Benutzer (in meinem Fall 2 Administratoren) auf der obersten Ebene von Multisite(2).  enter image description here 

Liste der Benutzer mehrerer Sites

Ich habe 25 Sites mit verschiedenen Benutzern. Einige Benutzer haben an verschiedenen Standorten unterschiedliche Rollen. Wenn ich das Netzwerk-Flagwp user list --networkverwende, erhalte ich denselben Stilbericht abzüglich der Rollen Spalte. Der Bericht erstreckt sich jedoch über das standortübergreifende Netzwerk von Standorten.  enter image description here 

Liste der Benutzer und Rollen von Websites mit mehreren 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=administratorder 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:

  1. wp-cli.org
  2. codex.wordpress.org/Glossary#Multisite

Randnotiz: Es wäre auch praktisch, diese nach Site zu unterteilen.

2
nic

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; 
5
birgire