Estamos acostumbrados a gestionar WordPress desde la interfaz web. Sin embargo, no es la única forma y a veces tampoco la más eficiente. Hoy veremos qué ventajas da gestionar WordPress mediante WP-CLI y como implementarlo en nuestro servidor

¿Qués es WP-CLI y qué podemos hacer con él?

La respuesta corta a esta pregunta la encontraremos en wpcli.org

WP-CLI proporciona una interfaz de línea de comandos para muchas acciones que puedes realizar en el administrador de WordPress. ...
WP-CLI proporciona una interfaz de línea de comandos para muchas acciones que puedes realizar en el administrador de WordPress ...

Todos los desarrolladores estamos acostumbrados a utilizar la interfaz de comandos, ya que esa ventana negra nos permite llevar a cabo tareas complejas de una forma rápida y eficaz. Pero, ¿qué puede aportar  una interfaz de línea de comandos a un gestor de contenidos web como WordPress? La mayoria de usuarios no son desarrolladores y la interfaz gráfica (GUI) pone a su alcance todas las tareas de administración sin necesidad de conocimientos técnicos.

Sin embargo, ¿que sucede cuando no podemos acceder a la GUI? Por ejemplo si no recordamos la contraseña y falla el procedimiento de recuperación,  si instalamos un plugin incompatible o tenemos problemas después de una actualizacion y nuestra web no funciona con normalidad. En esos casos tendremos que acceder directamente al sistema de archivos y/o la base de datos. Sin los conocimientos adecuados el remedio puede ser peor que la enfermedad. Por eso en la mayoría de los casos no queda más remedio que solicitar ayuda a un experto.

Gestionar WordPress mediante WP-CLI permite solucionar fácilmente este tipo de incidencias. También podremos administrar temas, plugins, widgets y usuarios. Incluso podemos gestionar nuestro contenido, aunque para esto último suele ser mejor utilizar la GUI, salvo algunas excepciones que veremos más adelante.

WP-CLI no es un plugin, es un sistema de funciones desarrollado en PHP y requiere ser instalado de manera independiente.Veamos como hacerlo


Instalación de WP-CLI

Debemos tener en cuenta que esWP-CLI está diseñado para entornos tipo Unix (Linux, OS X, FreeBSD). En Windows debemos utilizar CygWin, pero su funcionalidad estará limitada. La versión mínima de PHP  es la 5.4 y no funcionará correctamente en versiones de WordPress anteriores a la 3.7.

Obviamente necesitamos tener acceso a la consola del servidor. Si estamos en un hosting compartido debemos activar dicho acceso. En algunos casos como por ejemplo Siteground, lo tendremos preinstalado al contratar el alojamiento,

Hay varias formas de instalar WP-CLI. De todas ellas la recomendada es la más facil: descargamos un único archivo wp-cli.phar

La forma más sencilla de hacerlo es mediante curl o wget, por ejemplo:

curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar

comprobamos la instalación mediante  php wp-cli.phar --info y si todo ha ido bien obtendremos un resultado similar al siguiente:

OS: Linux 4.4.0-97-generic #120-Ubuntu SMP Tue Sep 19 17:28:18 UTC 2017 x86_64
Shell: /bin/bash
PHP binary: /usr/bin/php7.0
PHP version: 7.0.32-0ubuntu0.16.04.1
php.ini used: /etc/php/7.0/cli/php.ini
WP-CLI root dir: phar://wp-cli.phar/vendor/wp-cli/wp-cli
WP-CLI vendor dir: phar://wp-cli.phar/vendor
WP_CLI phar path: /home/ubuntu
WP-CLI packages dir:
WP-CLI global config:
WP-CLI project config:
WP-CLI version: 2.0.1

Para simplificar su uso, damos permiso de ejecucuón al archivo wp-cli.phar, lo movemos a la carpeta /usr/local/bin y aprovechamos para renombrarlo por ejempo: wp. De esta forma podemos ejecutarlo directamente desde cualquier ubicacion. Los comandos son:

chmod +x wp-cli.phar
sudo mv wp-cli.phar /usr/local/bin/wp

A partir de ahora solo tenemos que escribir wp seguido del comando correspondiente para gestionar WordPress mediante WP-CLI. Por ejemplo wp --info nos mostrará el resultado anterior. Si tecleamos solo wp tendremos una lista de los comandos disponibles; 

Para actualizar WP-CLI utilizaremos wp cli update. Si hemos utilizado otro método de instalación debemos repetir la instalación para acutalizar la herramienta.


Cómo gestionar WordPress mediante WP-CLI

Veamos como WP-CLI simplifica algunas de las tareas más comunes de administración.

1. Administración del núcleo de WordPress

WP-CLI nos permite instalar y actualizar el núcleo de WordPress. El comando que utilizaremos para ello es wp core. Para conocer todas las opciones usaremos wp help core

Este ejemplo muestra una de las mejores cualidades de WP-CLI, No necesitamos memorizar todos los comandos. Siempre tendremos a mano información detallada, incluyendo ejemplos de uso.

-- Instalar WordPress

Nos situamos en la carpeta correspondiente a nuestra instalación y ejecutamos wp core download. Con el parámetro --locale  indicamos el idioma (por omisión en_US) y con --version seleccionamos la versión deseada (por omisión la última disponible). 

Necesitaremos crear el archivo wp-config.php. Utilizamos los parámetros de conexión a la base de datos, que debemos tener creada con anterioridad. Por ejemplo:

mysql -u root -prootp -se "create database bdatos;"

mysql -u root -prootp -se "grant all privileges on bdatos.* to 'usuario'@'localhost' identified by 'db_pass';"

mysql -u root -prootp -se "flush privileges;"

En este caso el comando a utilizar será:
 wp core config --dbname=bdatos --dbuser=usuario --dbpass=db_pass --dbhost=localhost

Finalmente procedemos a la intalacion
wp core install --url=http://url.blog.com --title="Mi blog" --admin_user=uadm
--admin_password=padm --admin_email=uadm@email.com

Sustituiremos los parámetros indicados por los valores adecuados a nuestra instalación.

La instalacion mediante WP-CLI es igual de sencilla que la instalación tradicional y mucho más rápida.

-- Actualizar el núcleo de WordPress

Esta tarea es mucho más frecuente. Con wp core check-update comprobamos si hay disponible alguna actualización y con wp core update la instalamos. Es frecuente que una actualizacion del núcleo incluya modificaciones en la base de datos. El comado para actualizar la base de datos es wp core update --db. 

Una buena práctica antes de actualizar es realizar una copia de seguridad de la base de datos. Con WP-CLI lo hacemos mediante wp db export copia-bbdd.sql. Este comando nos guardará una copia en la raiz del sitio, dentro del archivo copia-bbdd.sql.

Podemos indciar una versión específica con wp core update --version=xxx, Es una opción extremadamente útil si necesitamos volver a una versión anterior para resolver algún problema de compatibilidad con los temas o plugins instalados. En este caso es posible que necesitemos incluir el parámetro --force.

Sin WP-CLI nuestras opciones serían utilizar un plugin o realizar un complicado proceso manual. Quienes hayan pasado por esto comprenderán las ventajas de gestionar WordPress mediante WP-CLI.

2. Administrar temas y plugins

Cuantas veces hemos instalado un plugin y hemos descubierto demasadiado tarde que nuestro sitio deja de funcionar y no podemos acceder al panel de administracion. En ese caso tendremos que acceder al servidor y eliminar la carpeta del plugin incompatible.

WP-CLI nos lo pone facil con wp plugin. Estas son algunas de las opciones disponibles para este comando

  • wp plugin deactivate nombre-del-plugin: Desactiva el plugin indicado
  • wp plugin delete nombre-del-plugin: Elimina los archivos del plugin indicado
  • wp plugin update nombre-del-plugin: Actualiza el pugin indicado a la última version disponible
  • wp plugin status: Nos muestra una lista con todos los plugins instalados 

Para eliminar un plugin incompatible solo tendremos que usar wp plugin delete indicando el nombre del plugin y nuestro sitio volverá a funcionar con normalidad. Mucho más fácil. 

Es posible actualizar todos los plugins de un golpe utilizando wp plugin update -all. Podemos combinar comandos, por ejemplo para eliminar todos los plugins inactivos usaremos el siguiente comando: wp plugin delete $(wp plugin list --status=inactive --field=name)

La administración de temas se realiza de la misma forma, solo que el comando a utilizar en este caso es wp theme. Por ejemplo la salida de wp theme status será parecida a

3. Administrar usuarios

El comando wp user nos permite manipular los usuarios. Entre sus muchas opciones, la que seguramente utilizaremos con mayor frecuencia es wp user update usuario --display_name=nombre --user_pas=contraseña.

Los parámetros utilizados son

  • usuario: Nombre, ID o correo electronico del usuario a modificar
  • display_name: Nombre visible del usuario
  • user_pass: Nueva contraseña del usuario

Nada que ver con el procedimiento habitual de acceder directamente a la base de datos e introducir el hash de la nueva contraseña. 

Otra función habitual es eliminar usuarios. Con WP-CLI podemos reasignar las entradas a otro usuarios en la misma orden: wp user delete usuario --reassign=ID-del-otro-usuario.

Este otro tipo de tareas en las que gestionar WordPress mediante WP-CLI nos hace ser más productivos, sin que sea necesario sobrecargar nuestra web con plugins.

4. Crear temas hijos y tipos de contenido personalizado

Ya hemos hablado de la importancia de utilizar temas hijos en WordPress. Si no queremos utilizar plugins y tampoco deseamos crear los archivos manualmente, vemos como WP_CLI acude en nuestra ayuda. De nuevo una simple línea de texto no resuelve la papeleta:

wp scaffold child-theme tema-hijo --parent_theme=tema-padre --theme_name=nombre-del-tema

Con este comando tendremos un nuevo tema creado y listo para ser utilizado. Tenemos mas opciones a nuestra dispocición, como --activate (se activa inmediatamente) y --force (sobreescribe un tema existente). Tambien podemos añadir nuestra información como autores.

Por otra parte, el comando wp scaffold puede ser utilizado para generar tipos de entradas personalizados, taxonomías y la estructura básica de un plugin.

5. Regenerar miniaturas y administrar medios

Como podemos esperar, wp media es el comando a utilizar para estas tareas. De sus numerosas opciones la más interesante quizás sea wp media regenerate --yes. Con este comando creamos rápidamente las miniaturas para todos los tamaños de imagen registrados en nuestro sitio. El parámetro --yes nos evita tener que responder a todas las preguntas de confirmación.

Por otra parte podemos regenerar un tamaño específico y/o limitarnos a determinadas imágenes. También podremos incorporar de un golpe toda una carpeta de imágenes a la biloteca de medios. 

¿Cuantas veces hemos cambiado de tema o añadido un plugin, para ver luego que algunas imágenes no se visualizan correctamente?. Siempre podremos utilizar un plugin que solucione el problema, pero tenemos una solución alternativa mucho más elegante. Es otra muestra de las ventajas que nos aporta gestionar WordPress mediante WP-CLI.

6. Dejar el sitio en blanco

Esta es una opción muy útil, por ejemplo, hemos finalizado la implementacion y antes de pasar a producción deseamos borrar todo el contenido de pruebas. Lógicamente nos interesa mantener las configuraciones y opciones en nuestro tema y plugins activos.

Pues WP-CLI nuevamente nos da la solución wp site empty. Si añadimos el parámetro --uploads, se eliminará el contenido de dicha carpeta. Y como siempre, --yes nos evitará tener que responder a todos los mensaje de confirmación.

Conclusión

Hemos visto algunos ejemplos sencillos de como gestionar WordPress mediante WP-CLI. Si nos hemos visto en situaciones similares, tendremos claro las ventajas que nos aporta usarlo. La sencillez de su instalación (básicamente basta con subir un archivo a nuestro servidor) y su sistema de ayuda que nos evita tener que memorizar todos los comando y opciones, lo convierten en una herramienta casi indispensable en cualquier instalación de WordPress.

Aquí solo hemos arañado la superficie. Quienes tengan experiencia de trabajo con la consola de comando encontrarán muchas más oprtunidades para ser más productivos en su día a día

2 1 vote
Valoración del artículo
Suscribir
Notificar de
guest
0 Comentarios
Newest
Oldest Most Voted
Inline Feedbacks
View all comments