WP-CLI o como administrar WordPress desde la consola SSH

Hoy te voy a enseñar que es WP-CLI y como te servirá para administrar WordPress desde la consola SSH. No te lo aconsejo si no tienes conocimientos de como funciona la arquitectura de un servidor ni nada de lineas de comando o edicción básica de archivos a través de la consola. Trataré de explicártelo de la forma mas sencilla donde solo tengas que seguir mis pasos. Aún así te aconsejo que hagas una copia de seguridad de tu web antes de acceder a WordPress mediante la consola.

¿Qué es WP-CLI?

WP-CLI “WordPress Command Line Interface” es una librería que permite administrar WordPress desde la línea de comandos SSH. Es realmente útil para administradores de sistemas y personas expertas en la configuración de WordPress. Aunque no tendrás una interfaz gráfica, tus consultas y modificaciones se harán prácticamente en milisegundos. Es bastante útil, fácil de entender y trabajar.

Acceso a SSH para trabajar con WP-CLI 

Lo primero que tienes que hacer es conseguir acceso SSH a tu hosting o VPS. Te aconsejaría preguntarle a tu proveedor de hosting por los acceso SSH a tu web. Normalmente si te los dan, muchos de ellos te dicen que pierdes la garantía de servidor administrado puesto que están dándote acceso al servidor.

Instalar WP-CLI en un VPS

Piensa que un hosting es un espacio compartido con otros clientes dentro de una misma máquina por lo que algunas funciones están capadas y además no tienes acceso completo a la administración del servidor. Por eso si tu hosting no cuenta con acceso a SSH tendrás que preguntar a tu proveedor. Si tienes un VPS y quieres instalar WP-CLI lo que tienes que hacer es acceder a tu VPS mediante SSH con los datos proporcionados por tu proveedor.

Link a la página oficial de GitHub del proyecto: WP CLI en GitHub

Una vez dentro lanzamos las siguientes líneas de código:

instalando wp-cli

Con el primer comando estás descargando el archivo wp-cli.phar desde el repositorio oficial de WP CLI en GitHub. El archivo .phar (Un archivo Phar es usado para distribuir una biblioteca PHP completa comprimida en un único farchivo)

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

Ahora damos permisos suficientes al archivo .phar con el segundo comando:

chmod +x wp-cli.phar

Por último, con el último comando, movemos el archivo o script batch al directorio BIN para que pueda ser llamado desde cualquier instancia del servidor con el comando WP. Recomiendo usar el código desde el acceso SSH usuario y no como root. De hecho podría ser peligroso y es así como nos lo notifica el script cuando intentamos ejecutar cualquier comando de WP-CLI desde root.

sudo mv wp-cli.phar /usr/local/bin/wp

Bien, ya podemos ejecutar el comando WP desde cualquier parte del servidor, lo hemos instalado a la perfección. Si quieres, para asegurarte que está bien instalado puedes ejecutar el siguiente comando que te dará información sobre la librería:

información librería wp-cli

¡Enhorabuena! Si has llegado hasta aquí quiere decir que estás decidido a administrar WordPress desde la línea de comandos WP-CLI. El siguiente paso es trabajar la librería. Gracias a WP-CLI podemos administrar los valores esenciales de WordPress como:

  • Instalar una nueva instancia de WordPress
  • Crear, modificar y eliminar usuarios y características de estos
  • Crear, modificar y eliminar post, páginas, categorías, etc
  • Crear, modificar y archivos de la instalación de WordPress
  • Activar y desactivar plugins
  • Crear, modificar y eliminar plantillas en WordPress
  • Configurar parámetros de configuración de WordPress
  • Y así con todo lo que te puedas imaginar.

Trabajando con WP-CLI desde SSH

Para acceder al SSH podemos hacer uso de un programa que se llama PuTTY (Descárgalo accediendo aquí: https://www.putty.org/). Es gratuito, muy ligero y muy efectivo. Para conectarnos necesitamos conocer la IP del servidor, el usuario del hosting, la contraseña del usuario y la ruta donde está la instalación o los archivos de WordPress. Abrimos PuTTY y colocamos los siguientes datos de conexión:

instalación wp-cli mediante ssh putty

Aquí solo necesitarás colocar la IP donde dice “IP DEL SERVIDOR DE TU HOSTING”, dejar todo como está con el puerto 22 (Porque suele ser el de por defecto, aunque dependiendo de tu proveedor de alojamiento web podría cambiar), eliges conectarte por SSH y haz click en “Open“. Acto seguido se abrirá una nueva ventana negra por la cual nos preguntará cual es el usuario del servidor que nosotros administraremos.

Si lo encuentra, nos preguntará por la contraseña. Una vez la colocas (Recuerda que en las terminales las contraseñas no las ves, pero las escribes igualmente) y entonces presionas la tecla “Enter“. Si todo ha ido bien, has puesto el usuario correcto y la contraseña bien, debería salirte un mensaje parecido a este en pantalla:

acceso ssh wp-cli

Como todo ha ido bien, el servidor nos ha identificado y nos asigna un nombre en la maquina desde la que lanzaremos los comandos. Lo que tenemos que hacer antes es situarnos en la raíz donde están los documentos o archivos de WordPress y lanzar desde ahí el script .PHAR de WP-CLI. En este caso, mi ruta hasta los archivos es:

 /home/wpcli/web/wpcli.com/public_html

Por lo que en la consola deberé introducir el siguiente comando:

acceso archivos wordpress ssh wp-cli

De hecho si ejecutamos un comando “ls” (comando que sirve para mostrar los archivos y carpetas que hay dentro de otra) nos encontramos con lo siguiente:

acceso archivos wordpress ssh wp-cli ruta

Bien, ya estás en la raíz de la instalación de WordPress. Aquí vemos los archivos necesarios que seguro que alguna vez has visto en un FTP o archivos descomprimidos en el .RAR de los archivos de una instalación de WordPress. Los que están en amarillo representan carpetas, los que están en blanco son archivos. Ya podemos empezar a trabajar los comandos de WP-CLI.

Usando los comandos de WP CLI

Te voy a enseñar los comandos más básicos para que aprendas a administrar WordPress desde la consola y trabajes más rápido. Si quieres conecer todos los comandos disponibles puedes consultar la documentación oficial de WP-CLI desde este enlace: https://developer.wordpress.org/cli/commands/.

La forma de ejecutar los comandos sigue una arquitectura, “wp” es el comando padre donde nace el resto de parámetros. Dentro de la raíz de la instalación de WordPress, si ejecutamos el comando “wp” (Sin las comillas) obtenemos la siguiente información:

wp-cli comando wp ayuda

Lo que quiere decir el script es que “wp” ha de ir siempre acompañado de un subcomando de la forma:

wp <<subcomando>>

Por ejemplo, si ejecutas wp post estamos trabajando con los post ¿Pero qué quieres trabajar con ellos? Por eso, al igual que antes, como no has especificado que quieres hacer, el asistente te tirará pistas de como es la estructura si queremos tratar con los posts. Este sería el resultado de ejecutar wp post:

wp-cli comando wp post ayuda

Si te fijas, el asistente te dice que puedes hacer en la categoría “posts“. Existen los subcomandos, por ejemplo, dentro de “post” como:

  • wp post create: Puedes crear un post con este comando, solo te falta especificar los atributos con los caracteres “–” seguido del campo en la base de datos, acompañado de “=” seguido del “valor”. Por ejemplo, si ejecutas: wp post create –post_title=”Crear post con WP-CLI es muy fácil” crearás un post con ese título. Únicamente existirá ese título, sin contenido, ni autor, ni nada por que no se lo especificaste. Como no hemos especificado el estado, se creará como borrador. En los siguientes comandos te enseño a modificar esto. Se ha creado el post con ese título con la ID de referencia seis (6)

wp-cli comando wp post create

  • wp post list: Para seguir con el ejemplo anterior te voy a enseñar a como publicar el artículo creado anteriormente desde la consola. Para publicar el anterior artículo antes deberás saber cual es su ID. Para eso mostramos los posts actuales que existen con el comando tal cual: wp post list tal cual, sin atributos. Si quieres filtrar por otros valores podrías usar atríbutos pero en este caso vamos a mostrar todos los que existen. Ejecuta el comando y este es el resultado:

  • wp post update: ¡Bien! Ya tenemos la ID del post que habíamos creado, que es el número seis (6) como puedes ver en la imagen anterior. Si te fijas más a la derecha del todo en “post_status” está como “draft” lo que quiere decir que está como borrador. Lo que vas a hacer es aplicar unos filtros para modificar el estado del post y ya que estamos, también modificamos el campo de post_name para que tenga un SLUG y sea accesible como: http://wpcli.com/crear-post-wp-cli. Para ello ejecutamos el comando:

wp post update 6post_status=”publish” —post_name=”crear-post-wp-cli”

El resultado tras aplicar el comando es que se ha cambiado el estado del post a publicado por lo que a priori debería ser posible ver el artículo por los visitantes. Si vamos a la web de nuestro WordPress y hacemos un refresco de página veremos como el post ha sido publicado

wp-cli comando wp post update post publicado

Y si encima hacemos click en en el nombre del artículo veremos que la URL apunta a: http://tuweb.com/crear-post-wp-cli porque es así como se lo has especificado desde la linea de comando. ¿No es francamente útil WP CLI?. Puede que al principio te cueste entender los comandos pero estoy seguro que cuando lleves unos cuantos de cientos de comandos encima lo harás con los ojos cerrados. Ahora te voy a enseñar a modificar un post y/o artículo desde WP CLI. Para ello hay que usar el comando wp post edit.

  • wp post edit: Este comando se parece mucho al de update solo que aquí vas a poder modificar el contenido del post o página que nos interese directamente desde la linea de comandos WP-CLI. En el caso de que no supieras cual es la ID del post o página debemos tirar un wp post list para conocerla. En este caso ya la conocemos, es la ID 6 (seis) del ejemplo anterior por lo que si ejecutamos wp post edit 6 se abrirá el editor “vi” de Linux como el que vemos a continuación:

wp-cli comando wp post edit vi

Para darle a guardar tienes que:

  • Ir hasta el final del escrito
  • Pulsar Enter
  • Pulsar la tecla ESC
  • Escribir “:wq!” (Sin comillas)

¡Guardado!. Si vas ahora a tu wordpress en directo verás que cuando accedas al post o al artículo este ha cambiado por el contenido HTML puesto en la consola:
wp-cli comando wp post edit resultado real

  • wp post generate: Esta instrucción es una de las que más me gusta debido a que me permite generar como 50 o 100 post de golpe en 1 segundo sin tener que crearlos manualmente. La finalidad de este comando es generar contenido random para un fin. Por ejemplo, para ver como funciona el paginado, como quedan los estilos CSS en muchos post, para editar/modificar/trastear con muchos post a la vez… para ello usa el siguiente comando:

curl http://loripsum.net/api/5 | wp post generate –post_content –count=10

Con este comando usas la API de la página Lorem Ipsum que nos generará contenidos en latín de prueba tantas veces le especifiquemos en el parámetro –count. En este caso puedes crear 10 post con contenido random o tantas quieras. Al ejecutar el parámetro, si vas a administrar las entradas en el panel de administración de WordPress verás:

wp-cli comando wp post generate 10 post en 1 minuto


A mi personalmente me encanta poder editar artículos desde la terminal con WP-CLI porque lo puedes hacer en un segundo y no tienes que esperar a que carguen las páginas del editor visual del panel de administración, cambiar de página, cambiar de post, etc. Realmente me parece muy útil y mucho más si has tenido un conflicto de plugins o de código y no puedes acceder temporalmente a tu panel de administración de WordPress.

Yo te he enseñado a manejar 3-4 comandos muy básicos sin apenas aplicar filtros/atributos. Solo quería enseñarte el potencial de WP-CLI y lo que te puede ofrecer. Realmente es muy útil. No solo puedes editar post, ya viste más arriba la lista interminable de comandos y subcomandos que podías hacer uso. Y más que te encontrarás en la documentación oficial de WPI-CLI.

Conclusiones después de usar WP-CLI

No hay color. Todo es mucho más rápido, más fácil acceder a todos los sitios, etc. Únicamente tienes que estar pendiente y usar el sentido común. Para mi es mucho mejor trabajar desde la consola que desde la interfaz gráfica del panel de administración de WordPress. Te recomiendo NO usar WP-CLI si nunca te has conectado por SSH a un servidor, ni sabes que es un directorio, ni como editar un archivo, etc…

Deja que administradores de sistemas de verdad te puedan echar un cable como pueden hacerlo los chicos de Raiola Networks. Ellos están las 24 horas del día, los 365 días del año ya sea por teléfono, ticket, chat, correo… ¡Siempre a tu disposición!. Puedes encontrarlos aquí: >> Llámalos <<.