- 1. Instalación y primeros pasos
- 2. Instalando WordPress y primeros pasos y configuraciones
- 3. Trabajando con posts
- 4. Trabajando con usuarios
- 5. Trabajando con la base de datos
- 6. Search & Replace, un comando imprescindible
- 7. Importar y Exportar contenido
- 8. Scaffold, genera esqueletos de código
- 9. Paquetes de comandos adicionales
- 10. Crea tus propios comandos
En la cuarta entrada de la serie WP-CLI vamos a ver cómo trabajar y administrar los usuarios de WordPress desde la línea de comandos.
El comando es wp user, el cual tiene los siguientes subcomandos:
- wp user add-cap, para añadir una capability.
- wp user add-role, para añadir un rol de usuario.
- wp user create, para crear un nuevo usuario.
- wp user delete, para borrar uno o varios usuarios existentes.
- wp user generate, para generar usuarios en lote.
- wp user get, para obtener información sobre un usuario.
- wp user import-csv, para importar usuarios desde un CSV.
- wp user list, para listar los usuarios.
- wp user list-caps, para listar todas las capabilities de un usuario.
- wp user meta, para administrar los custom fields de un usuario.
- wp user remove-cap, para eliminar capabilities de usuarios.
- wp user remove-role, para eliminar un rol de usuario.
- wp user session, para administrar la sesión de usuario.
- wp user set-role, para establecer un rol a un usuario.
- wp user term, para administrar términos de usuarios.
- wp user update, para actualizar los datos de un usuario.
Como vemos, con este comando se pueden realizar muchas acciones sobre los usuarios de la instalación de WordPress. Vamos a ver con ejemplos algunos de estos comandos:
Listar usuarios
Para obtener un listado de los usuarios de nuestra instalación, haremos uso del comando wp user list. Acepta los siguientes parámetros:
-
[--role=<role>]
, para mostrar los usuarios de un determinado role. -
[--<field>=<value>]
, para mostrar en la salida sólo los usuarios que cumplan esta condición en WP_User_Query(). -
[--network]
, listar todos los usuarios en la red si es multisite. -
[--field=<field>]
, para imprimir únicamente un campo concreto en la salida. -
[--fields=<fields>]
, para limitar la salida a campos específicos. -
[--format=<format>]
, para mostrar la salida en un formato determinado. Por defecto tabla. Acepta: table, csv, ids, json, count, yaml
Por ejemplo, para listar todos los administradores y devolverlos en formato CSV:
wp user list --role=administrator --format=csv
Crear usuarios
También podemos crear un usuario desde la consola a través del comando wp user create. Acepta los siguientes parámetros:
-
<user-login>
, el login del usuario que vamos a crear. -
<user-email>
, el e-mail del usuario que vamos a crear. -
[--role=<role>]
, el rol del usuario que vamos a crear. -
[--user_pass=<password>]
, la contraseña del usuario que vamos a crear. -
[--user_registered=<yyyy-mm-dd-hh-ii-ss>]
, la fecha de registro del usuario que vamos a crear. -
[--display_name=<name>]
, el nombre que usará WordPress para mostrar el usuario que vamos a crear. -
[--user_nicename=<nice_name>]
, una cadena que contiene el nombre amigable del nombre de usuario que vamos a crear. -
[--user_url=<url>]
, la url del sitio web del usuario que vamos a crear. -
[--nickname=<nickname>]
, el nick del usuario que vamos a crear. -
[--first_name=<first_name>]
, el nombre del usuario que vamos a crear. -
[--last_name=<last_name>]
, los apellidos del usuario que vamos a crear. -
[--description=<description>]
, una cadena con una descripción del usuario que vamos a crear. -
[--rich_editing=<rich_editing>]
, para activar o no el editor visual al escribir. -
[--send-email]
, para enviar un mail al nuevo usuario. -
[--porcelain]
, para mostrar en pantalla el ID del usuario que vamos a crear.
Por ejemplo, para crear un usuario con rol administrador:
wp user create miusuario miusuario@example.com --role=administrator
Si no indicamos nada más, nos generará un password aleatorio:
Si quisiéramos establecer un password, bastaría simplemente con añadir:
wp user create miusuario miusuario@example.com --role=administrator --user_pass=miclave
Editar usuarios
Otro comando muy útil es wp user update. Muy útil porque suelen ser muchas las ocasiones en las que montas en tu PC un entorno local de un proyecto existente, y cuando te pasan la base de datos necesitas cambiar la clave del usuario administrador para poder acceder.
Este comando acepta los siguientes parámetros:
-
<user>
, el nombre de usuario, email o ID del usuario que queremos editar. -
[--user_pass=<password>]
, para establecer una contraseña nueva para el usuario que estamos editando. -
[--user_login=<login>]
, para establecer un nuevo nombre de usuario para el usuario que estamos editando. -
[--user_nicename=<nice_name>]
, para establecer un nuevo nombre amigable para el usuario que estamos editando. -
[--user_url=<url>]
, para editar la URL del usuario que estamos editando. -
[--user_email=<email>]
, para editar el email del usuario que estamos editando. -
[--display_name=<display_name>]
, para editar el nombre que muestra WordPress del usuario que estamos editando. -
[--nickname=<nickname>]
, para editar el nickname del usuario que estamos editando. -
[--first_name=<first_name>]
, para cambiar el nombre del usuario que estamos editando. -
[--last_name=<last_name>]
, para cambiar los apellidos del usuario que estamos editando. -
[--description=<description>]
, para editar la descripción del usuario que estamos editando. -
[--rich_editing=<rich_editing>]
, para activar o no el editor visual al escribir. -
[--user_registered=<yyyy-mm-dd-hh-ii-ss>]
, para modificar la fecha en la que el usuario que estamos editando se registró. -
[--role=<role>]
, para establecer el rol del usuario que estamos editando. -
--<field>=<value>
, par clave/valor de campos personalizados (custom fields) para del usuario que estamos editando.
Por ejemplo, para cambiar la contraseña de un usuario como comenté antes, el comando sería:
wp user update 1 --user_pass=nuevaclave
WP-CLI ya se encarga de encriptar la clave en base de datos.
Eliminar usuarios
Para eliminar usuarios disponemos del comando wp user delete. Acepta los siguientes parámetros:
-
<user>
, el nombre de usuario, email o ID del usuario que queremos eliminar. -
[--network]
, si es un multisite, borra el usuario de toda la red. -
[--reassign=<user-id>]
, para asignar todas las entradas del usuario que queremos eliminar a otro usuario. -
[--yes]
, responde SI a cualquier confirmación desde la consola.
Por ejemplo, para eliminar el usuario 6 y asignar todo su contenido al usuario 2:
wp user delete 6 --reassign=2
Podemos también combinar con otros comandos y borrar varios usuarios en lote:
wp user delete (wp user list --role=contributor --field=ID) --reassign=2
Este comando eliminaría todos los usuarios contributor y reasignaría sus contenidos al usuario 2.
Generar un lote de usuarios
Podemos generar usuarios en lote, muy útil si necesitamos contenido dummy o usuarios de diferentes perfiles. Esto lo conseguimos a través del comando wp user generate. Acepta los siguientes parámetros:
-
[--count=<number>]
, el número de usuarios que queremos crear. Por defecto 100 -
[--role=<role>]
, el rol que tendrán los usuarios generados. -
[--format=<format>]
, cómo queremos ver la salida. Por defecto progress, aunque podemos elegir ver los ids.
Por ejemplo, para crear 5 usuarios con rol editor:
wp user generate --count=5 --role=editor
Importar usuarios desde un CSV
Si queremos importar en lote una gran cantidad de archivos, podemos hacer uso del comando wp user import-csv. Acepta los siguientes parámetros:
-
<file>
, la ruta local o remota del fichero CSV que contiene los usuarios a importar. -
[--send-email]
, si queremos que se notifique por email al nuevo usuario creado. -
[--skip-update]
, para evitar actualizar el usuario si ya existe.
Este comando nos da más flexibilidad también si queremos generar un lote de usuarios, ya que podemos partir de un listado en CSV con los campos que queramos.
Es decir, el CSV debe tener un formato válido y que contenga en la primera fila al menos los campos user_login y user_email. Un ejemplo de cvs válido sería el siguiente:
user_login,user_email,user_pass,display_name,role;
miusuario1,miusuario1@example.com,miclave1,Mi usuario 1,administrator;
miusuario2,miusuario2@example.com,miclave2,Mi usuario 2,editor;
miusuario3,miusuario3@example.com,miclave3,Mi usuario 3,author;
miusuario4,miusuario4@example.com,miclave4,Mi usuario 4,contributor;
miusuario5,miusuario5@example.com,miclave5,Mi usuario 5,suscriber;
Basándonos en este CSV, podríamos generar 5 usuarios, cada uno con su username, email y clave diferentes. Además cada uno de estos usuarios tiene un rol diferente:
wp user import-csv /path/to/users.csv
Esto es especialmente útil cuando tenemos que probar nuestro sitio con diferentes roles. En lugar de crear los usuarios manualmente, lo hacemos a través de un simple comando utilizando un fichero que es parte de nuestra base de conocimiento.