>

Gestión avanzada de WordPress con WP-CLI

Fernan Díez     Colaboraciones    24/03/2017


No cabe duda de que WordPress es todo un referente a la hora de hablar de desarrollos web. Referente que se discute y que, al igual que cualquiera que se sitúe en la palestra mediática, es querido y odiado por partes iguales.

Las posiciones son enfrentadas en este caso entre la comunidad de desarrolladores, donde nos encontramos con aquellos que lo exprimen para sus proyectos y defienden a ultranza, y aquellos otros a los que seguir unos patrones establecidos, por el llamado, 'the WordPress way', hace que sufran en sus carnes las más profundas de las agonías.

Sin duda no les falta razón. A ninguna de las partes.

WordPress WP-CLI

Y tampoco le falta razón alguna a ese porcentaje de entre el 25% y el 30% de la web, según las fuentes que consultemos, que arranca sus instalaciones con el fichero wp-config.php por bandera y que ha elegido WordPress para tener la presencia en Internet de sus proyectos.

Ni tampoco a los casi 50.000 plugins que se encuentran disponibles de manera abierta en el repositorio oficial de plugins de WordPress.

Presentamos en este artículo una nueva forma de trabajar con WordPress que podrá hacer las delicias de todos los amantes de la terminal y que permitirá ser más ágiles en nuestros proyectos, tanto en el despliegue como en el posterior mantenimiento.

WP-CLI para gestionar WordPress desde la terminal

WP-CLI es un conjunto de herramientas que se gestionan a través de la línea de comandos y que ofrece funcionalidades de todo tipo para gestionar instalaciones de sitios web creados con WordPress. En efecto, has oído bien, gestionar un CMS como WordPress sin tener que pasar por su panel de administración, ni siquiera para crear una entrada o una página.

Vamos a seguir los pasos para entornos UNIX como pueden ser Mac OS X o Linux aunque salvando el proceso de instalación, los comandos que puedes utilizar desde la consola de Windows no distan mucho de los que a continuación vamos a comentar.

Instalación

El proceso de instalación recomendado pasa por descargar el archivo .phar de la instalación teniendo en cuenta unos requisitos previos mínimos.

  • Entorno UNIX (OS X, Linux, FreeBSD Cygwin), siendo el soporte más limitado en entornos Windows.
  • PHP 5.3.29 o superior
  • WordPress 3.7 o superior.

Una vez que hemos comprobado estos requerimientos, descargaremos el archivo wp-cli.phar a través de wget o curl:

$ curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar A continuación podemos comprobar si la instalación ha sido satisfactoria: $ php wp-cli.phar --info Para poder usar WP-CLI desde la terminal utilizando simplemente el comando wp debermos convertir el archivo en ejecutable y moverlo a la variable de entorno PATH. Podemos seguir estos pasos: $ chmod +x wp-cli.phar $ sudo mv wp-cli.phar /usr/local/bin/wp

Si hemos instalado WP-CLI correctamente deberíamos ver algo similar a lo siguiente ejecutamos el comando wp --info:

$ wp --info PHP binary: /usr/bin/php PHP version: 5.5.30 php.ini used: WP-CLI root dir: phar://wp-cli.phar WP-CLI packages dir: WP-CLI global config: WP-CLI project config: WP-CLI version: 1.1.0

Actualización

Si queremos actualizar WP-CLI podemos ejecutar wp cli update o simplemente repetir el proceso de instalación anterior. Si el propietario de WP-CLI es el usuario root o cualquier otro usuario del sistema necesitarás ejecutar el comando como super usuario mediante sudo.

$ sudo wp cli update

Comandos disponibles para WP-CLI

Existen una serie de comandos predefinidos para WP-CLI que además pueden ser extendidos añadiendo diferentes variables.

A continuación os dejamos los comandos más habituales y algunos ejemplos de uso para poder empezar a trabajar con WP-CLI.

Gestión del núcleo de WordPress

Con el comando 'core' podremos descargar, instalar, actualizar y gestionar una instalación de WordPress.

Con el siguiente comando podremos descargar una instalación actualizada de WordPress en la versión localizada de idiomas que necesitemos:

$ wp core download --locale=es_ES

También podremos crear y configurar un archivo wp-config.php dentro de nuestra instalación con los parámetros de conexión con la base de datos que necesitemos añadiendo nombre del servidor, nombre, usuario y contraseña para la base de datos:

$ wp core config --dbhost=localhost --dbname=DATABASE --dbprefix=prewp_ --dbuser=USER --dbpass="PASSWORD"

Podremos además instalar WordPress con los parámetros que queramos utilizar en cuanto a dirección URL, título del sitio web, usuario de administración, contraseña y correo electrónico.

$ wp core install --url=http://www.dominio.com --title="SITIO WEB" --admin_user=USUARIO --admin_password="PASSWORD" --admin_email=email@email.com

Si necesitamos actualizar nuestra versión del core de WordPress también podemos hacerlo a través de la línea de comandos, e incluso la base de datos si fuera necesario:

$ wp core update $ wp core update-db

Gestión de plugins

Con el comando 'plugin' podremos gestionar todo lo relacionado con los plugin en nuestra instalación de WordPress

Podremos instalar y activar cualquier plugin del repositorio desde la línea de comandos o desinstalarlo si es lo que necesitamos.

$ wp plugin install contact-form-7 --activate $ wp plugin uninstall contact-form-7 También podemos actualizar un plugin en concreto mediante WP-CLI o si lo preferimos actualizar todos los plugins instalados que necesiten ser actualizados: $ wp plugin update contact-form-7 $ wp plugin update --all

Gestión de bases de datos

Si queremos manejar nuestra base de datos podemos hacerlo también desde WP-CLI. Es cierto que para este tipo de gestiones, podemos usar perfectamente comandos de MySQL desde la terminal, pero si queremos trabajar con bases de datos de WordPress no es necesario salir de WP-CLI.

En primer lugar podremos hacer una copia de seguridad de nuestra base de datos exportándola en un fichero .sql. Del mismo modo, también podremos importar una base de datos en la actual:

$ wp db export backup.sql $ wp db import database.sql

En cuanto a labores de mantenimiento podemos optimizar o reparar nuestra base de datos de WordPress:

$ wp db repair $ wp db optimize

Podemos realizar también otro tipo de operaciones como crear una nueva base de datos usando los datos del fichero wp-config.php

$ wp db create

Actualización de cadenas en base de datos

Para terminar, comentamos uno de mis comandos favoritos y que nos pueden permitir, con una sola línea de comandos reemplazar las cadenas dependientes del dominio principal de la instalación. Un quebradero de cabeza que puede solucionarse de una manera bien sencilla, dejando nuestro sitio web creado en local, listo para ser desplegado en el dominio principal de producción.

$ wp search-replace 'www.dominio.dev' 'www.dominio.dom'

Conclusiones

WordPress avanza a pasos lentos, pero seguros, en un camino dirigido a la mejor experiencia del usuario final, consiguiendo así democratizar la posibilidad de crear, mantener y gestionar un sitio web para cualquier persona que lo desee.

Todo esto, sin necesidad de tener grandes conocimientos técnicos como para poder conseguir resultados profesionales.

Mientras tanto, la comunidad de desarrolladores que trabaja cada día para que WordPress sea más grande, también se preocupa de aquellos que quieren exprimir aún más las posibilidades que ofrece la herramienta. Se siguen creando sistemas como el de WP-CLI, que nos permite realizar operaciones complejas mediante líneas de comando simples, consiguiendo resultados ágiles y efectivos para manejar tareas rutinarias de una manera más eficientes.

Si no nos conformamos con la superficie y exploramos determinados mecanismos podemos descubrir grandes soluciones que nos permitirán tener una perspectiva diferente y enfrentarnos a una herramienta de un modo definitivamente diferente y más productivo.


Sobre el autor

Fernan Díez   

Desarrollo Web WordPress & Marketing Online Publico 'WordPress Diario', un podcast sobre desarrollo web con WordPress y marketing online donde encontrarás consejos, herramientas y recomendaciones sobre todo lo que te puede interesar acerca del mundo del diseño web con WordPress, y el marketing digital.