¿Puede wp-cli mostrar todos los usuarios y sus roles en todos los sitios en una instancia multisitio?

2

Lista de usuarios multisitio

Utilizando wp-cli (1) Si ejecuto wp user list obtengo una lista de los usuarios (2 administradores en mi caso ) en el nivel superior de multisitio (2) .

Listadeusuariosdesitiosmultisitio

Tengo25sitiosconvariosusuarios.Algunosusuariosestánendiferentessitioscomodiferentesroles.Cuandousolamarcaderedwpuserlist--networkobtengoelmismoinformedeestilomenoslacolumnaroles;peroelinformeabarcalareddesitiosmultisitio.

Enumerar los usuarios + roles de los sitios de varios sitios

Mi objetivo es enumerar todos los administradores de cada sitio. Aquí es donde estoy atrapado. Aparentemente, al agregar la marca adicional --role=administrator no se agrega nada a la conversación. Ejecutará el mismo informe de red de todos los usuarios registrados.

¿Existe una combinación de indicadores que enumere a los usuarios junto con sus roles?

Referencias:

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

Nota al margen: la división de estos por sitio también sería útil.

    
pregunta nic 07.08.2017 - 20:57

1 respuesta

5

Enumere todos los administradores de cada sitio

  

Nota al margen: la división de estos por sitio también sería útil.

Hagamos eso aquí:

Podemos listar la url de cada sitio con:

wp site list --field=url

Podemos enumerar a todos los administradores de un sitio determinado con:

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

Estos comandos se pueden combinar con, por ejemplo, xargs como se sugiere en el sitio wp-cli :

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

También podríamos usar | tail --lines=+2 para omitir el encabezado url , del primer comando como se explica en el manual de la cola y respuestas como éste .

Gracias a @grappler por sugerir --field="url" en lugar de --fields="url" con | tail --lines=+2 para omitir la fila del encabezado.

Si queremos mostrar url antes de cada tabla:

for url in $( wp site list --field="url" ); \
do \
   echo $url; \
   wp user list --role=administrator --url=$url; \
done; 
    
respondido por el birgire 07.08.2017 - 22:05

Lea otras preguntas en las etiquetas