web-dev-qa-db-fra.com

Wp-cli peut-il afficher tous les utilisateurs et leurs rôles sur tous les sites dans une instance multisite?

Liste des utilisateurs multisites

Utiliser wp-cli (1) Si je lancewp user listje reçois une liste des utilisateurs (2 administrateurs dans mon cas) au plus haut niveau du multisite(2).  enter image description here 

Répertorier les utilisateurs de sites multisites

J'ai 25 sites avec différents utilisateurs. Certains utilisateurs occupent des sites différents en tant que rôles différents. Lorsque j'utilise l'indicateur de réseauwp user list --networkj'obtiens le même rapport de style, moins la colonne roles ; mais le rapport couvre le réseau multisite de sites.  enter image description here 

Répertorier les utilisateurs et les rôles des sites multisites

Mon objectif est de répertorier tous les administrateurs de chaque site. C'est là que je suis coincé. Apparemment, l'ajout du drapeau supplémentaire--role=administratorn'ajoute rien à la conversation. Il exécutera le même rapport de réseau de tous les utilisateurs enregistrés.

Existe-t-il une combinaison de drapeaux répertoriant les utilisateurs avec leurs rôles?


Références:

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

Remarque: il serait également utile de les diviser par site.

2
nic

Liste tous les administrateurs de chaque site

Note latérale: Les diviser par site serait également pratique.

Faisons ça ici:

Nous pouvons lister les url de chaque site avec:

wp site list --field=url

Nous pouvons lister tous les administrateurs d'un site donné avec:

wp user list --role=administrator --url=https://example.tld/site1

Ces commandes peuvent être combinées avec, par exemple, xargs comme suggéré sur le wp-cli site :

wp site list --field=url  \
  | xargs -I % wp user list --role=administrator --url=%

Nous pourrions également vouloir utiliser | tail --lines=+2 pour ignorer l'en-tête url de la première commande, comme expliqué dans le manuel final, et des réponses telles que this .

Merci à @grappler d'avoir suggéré --field="url" au lieu de --fields="url" avec | tail --lines=+2 pour ignorer la ligne d'en-tête.

Si nous voulons afficher le url avant chaque tableau:

for url in $( wp site list --field="url" ); \
do \
   echo $url; \
   wp user list --role=administrator --url=$url; \
done; 
5
birgire