Poesía Binaria

Descubrimos WP-CLI para hacer maravillas y automatizar tu WordPress al máximo


WordPress es el CMS más popular hasta el momento. Solo que orientado al mundo blog o blogosfera, a día de hoy se hacen webs de diversa índole aprovechando sus capacidades de extensión. Aunque a los que llevamos mucho tiempo en la informática, las siglas WP nos recuerdan a WordPerfect1, pero no tiene nada que ver.
Como sabrán muchos lectores de este blog, normalmente prefiero las soluciones de línea de comandos para muchas tareas frente a otras soluciones gráficas más bonitas e intuitivas, ya que éstas últimas suelen ser más lentas, requieren un proceso constante de interacción por mi parte y es muy difícil automatizarlas.

Ahora viene lo bueno, ¿hay alguna forma de utilizar WordPress desde una interfaz de línea de comandos?
¡Por supuesto! Desde finales de 2011 tenemos con nosotros un desarrollo inicialmente hecho por Andreas Creten2 y Cristi Burcä3, aunque ahora su principal mantenedor es Daniel Bachhuber4 (encontramos sus enlaces de GitHub abajo del todo) llamado WP-CLI5.

¿Qué hace WP-CLI?

Básicamente es una interfaz en línea de comandos que nos permite utilizar WordPress sin necesidad de ver una web (aunque sí que necesitaremos acceso SSH al servidor donde tenemos alojado el blog).
Entre otras cosas, nos permite realizar instalaciones de WordPress, instalar plugins, temas, actualizarlos, gestionar comentarios, taxonomías, widgets, posts, páginas, usuarios, base de datos y muchas cosas más, todo desde nuestra línea de comandos. Y, por supuesto, podemos automatizar todas las acciones, lo cual nos permite ahorrar muchísimo tiempo en tareas repetitivas o al menos, si alguna operación va a tardar un rato, no necesitamos estar delante cargando decenas de apartados en el navegador y realizando tareas que requieren nuestra presencia y atención (y, si gestionas muchos blogs te puede venir muy bien).

Requerimientos

Para poder utilizar WP-CLI necesitamos:

Instalación

WP-CLI no es un plugin de WordPress, por lo que no tenemos que instalarlo con el entorno de administración de éste. Es más, WP-CLI es capaz de automatizar tus instalaciones de WordPress. ¿Necesitas hacer varias instalaciones de WP en un servidor? Con esta herramienta puedes hacerlo en cuestión de segundos. WP-CLI será lo primero que instales.

Debemos hacerlo de la siguiente forma:

$ curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar
$ sudo mv wp-cli.phar /usr/local/bin/wp
$ sudo chmod +x /usr/local/bin/wp

Con esto, lo tendremos instalado a nivel de sistema. Por lo que, en cualquier lado, podemos ejecutar:

$ wp –info
PHP binary: /usr/local/php54/bin/php-cli
PHP version: 5.4.45
php.ini used: /usr/local/php54/lib/php.ini
WP-CLI root dir: phar://wp-cli.phar
WP-CLI packages dir: /home/poesiab8/.wp-cli/packages/
WP-CLI global config:
WP-CLI project config:
WP-CLI version: 0.23.0

y nos dará información básica sobre el programa. Además, si a menudo trabajas con la línea de comandos, seguro que la tecla Tab la tienes desgastada, porque conseguimos que escriba lo que nos da pereza escribir, además de ayudarnos a recordar mucha información. Esto se llama bash completion, y muchísimos vienen acompañados de un pequeño script que nos ayuda con esto. WP-CLI no va a ser menos. Podemos descargarlo e instalarlo:

wget https://github.com/wp-cli/wp-cli/raw/master/utils/wp-completion.bash
sudo mkdir -p /usr/local/share/bash-completion/completions
sudo mv wp-completion.bash /usr/local/share/bash-completion/completions

Ahora en nuestro $HOME, añadir al archivo .bashrc las siguientes líneas al final:

1
2
3
4
if [ -f "/usr/local/share/bash-completion/completions/wp-completion.bash" ];
then
   source /usr/local/share/bash-completion/completions/wp-completion.bash;
fi

Así, nada más entrando en el sistema podremos disfrutar de esta ayuda. Si no queremos salir y volver a entrar, podemos hacer:

$ source /usr/local/share/bash-completion/completions/wp-completion.bash

Recapitulando

También podemos crear un pequeño script que lo haga todo por nosotros, muy útil si tenemos que hacer varias instalaciones de WP-CLI (el script necesita sudo, y preguntará la contraseña, pero no es difícil de adaptar):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#/bin/bash

OLDPWD="$(pwd)"
cd /tmp/

# Descarga e instala WP-CLI
wget https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar
sudo mv wp-cli.phar /usr/local/bin/wp
sudo chmod +x /usr/local/bin/wp

# Descarga e instala WP-CLI completion
wget https://github.com/wp-cli/wp-cli/raw/master/utils/wp-completion.bash
sudo mkdir -p /usr/local/share/bash-completion/completions
sudo mv wp-completion.bash /usr/local/share/bash-completion/completions

# Instala WP-CLI completion en el usuario actual
cp $HOME/.bashrc $HOME/.bashrc_old
echo "if [ -f "/usr/local/share/bash-completion/completions/wp-completion.bash" ]
then
    source /usr/local/share/bash-completion/completions/wp-completion.bash;
fi"
>> $HOME/.bashrc
source /usr/local/share/bash-completion/completions/wp-completion.bash

cd "$OLDPW"

También podemos instalarlo en Windows, o utilizar Composer o Brew, tenemos mucha más información en la web oficial.6.

Actualización

WP-CLI soporta auto-actualización (como composer), es decir, ejecutando:

$ wp cli update

Automáticamente se descargará la última versión y se sobreescribirá el archivo actual (debemos tener permisos para ello, por ejemplo si está instalado con privilegios de root, debemos ser root, o hacer sudo si está disponible).

Antes de empezar

WP-CLI puede administrar múltiples instancias de WordPress en un mismo servidor, tanto si tienes una instalación para cada blog WordPress como si dispones de configuración multisitio7.
Es recomendable, antes de utilizar WP-CLI acceder al directorio del servidor donde tenemos la instalación de WordPress (a no ser que lo estemos instalando), de la siguiente forma:

$ cd www/mi_blog/www/
$ wp core version

Aunque, también podemos hacer lo siguiente (aunque puede ser algo incómodo):

$ wp core version –path=www/mi_blog/www

Tareas básicas

Ahora viene lo interesante, todo lo que podemos hacer con WP-CLI, al menos algunas tareas comunes como las siguientes:

Instalación de WordPress

Para hacer la instalación, debemos dar varios pasos previos:

  1. Wordperfect
  2. Andreas Creten
  3. Cristi Burcă
  4. Daniel Bachhuber
  5. WP-CLI oficial
  6. Installing WP-CLI
  7. Cómo activar MultiSitio en WordPress
  8. Backup WordPress Plugin
  9. 21 Consultas SQL para administrar fácilmente nuestro WordPress

Foto: Austin Schmid

También podría interesarte....