Cómo instalar y utilizar WP-CLI para gestionar un blog de WordPress

En este artículo, vas a aprender sobre WP-CLI (WordPress Command Line Interface). Se trata una poderosa herramienta de WordPress que mejorará tu productividad y tus habilidades de gestión web.

Pero antes de mostrarte cómo instalarla y utilizarla, vamos a descubrir brevemente qué es WP-CLI.

¿Qué es WP-CLI?

WP-CLI es una herramienta que te da la posibilidad de gestionar tu sitio de WordPress a través de una interfaz de línea de comandos. Puedes ejecutar funciones estándar, como la instalación de plugins, la creación de entradas, las actualizaciones de WordPress, etc. Además, te permite realizar comandos que no son compatibles con el back-end estándar de WordPress.

El mayor beneficio de WP-CLI es que puede ahorrarte mucho tiempo cuando estás configurando, manteniendo o al instalar WordPress. Si tienes varios sitios, ya no tienes que entrar en cada cuenta para realizar tareas básicas. Y lo que es mejor, los comandos de WP-CLI también se pueden automatizar.

Suena interesante, ¿verdad? Así que sin más preámbulos, aquí están los pasos para instalar y utilizar WP-CLI.

Instalación de WP-CLI

Con los planes de alojamiento compartido de Hostinger, WP-CLI ya está instalado. Por lo tanto, sólo necesitas saber cómo conectarte a tu cuenta vía SSH para poder utilizarlo. Ten en cuenta, sin embargo, que nuestro plan de Hosting Compartido Simple excluye esta funcionalidad. Si deseas instalar la función en un VPS o en un sistema Linux local, puedes seguir los siguientes pasos:

  1. Descarga la herramienta WP-CLI desde Github con el siguiente comando:
curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar
  1. A continuación, confirma que se ha descargado con éxito:
php wp-cli.phar --info
  1. Ahora tienes que configurar wp-cli.phar para que sea un archivo ejecutable. Simplemente, introduce:
chmod +x wp-cli.phar
  1. Para finalizar la instalación, mueve todo a la ubicación final:
sudo mv wp-cli.phar /usr/local/bin/wp

Ahora que WP-CLI está instalado, puedes empezar a trabajar con tu contenido y archivos de WordPress a través de la línea de comandos.

Comprender los comandos de WP-CLI

WP-CLI es una herramienta sencilla si ya estás familiarizado con el entorno de línea de comandos. Sorprendentemente, a menudo es más rápido que entrar en el panel de administración de WordPress y hacer clic a través de varias opciones.

Por defecto, WP-CLI viene con numerosos comandos incorporados. Afortunadamente, puedes ampliarlos creando tus propios comandos personalizados o instalando plugins que soporten WP-CLI. Si quieres ver la lista de herramientas compatibles, lee este manual de WordPress.

Ahora, dejando eso de lado, echemos un vistazo a algunos comandos básicos de WP-CLI:

Comprobación de la versión de WP-CLI

Simplemente escribe este comando para comprobar la información de la versión de WP-CLI:

wp --info

La salida debería ser así:

PHP binary:           /usr/bin/php
PHP version:          7.3.11
php.ini used:         /opt/alt/php70/etc/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:     /Users/test
WP-CLI packages dir:
WP-CLI global config:
WP-CLI project config:
WP-CLI version: 2.4.0

Acceso a la lista de comandos de WP-CLI y a la documentación de ayuda

Escribe la siguiente línea si quieres ver otros comandos que puedes usar con WP-CLI:

wp help

La salida:

NAME
  wp
DESCRIPTION
  Manage WordPress through the command-line.
SYNOPSIS
  wp <command>
SUBCOMMANDS
  cache               Adds, removes, fetches, and flushes the WP Object Cache object.
  cap                 Adds, removes, and lists capabilities of a user role.
  cli                 Manage WP-CLI itself.
  comment             Creates, updates, deletes, and moderates comments.
  core                Download, installs, updates and manages a WordPress installation.
  cron                Tests, runs, and deletesq WP-Cron events and schedules.
  db                  Perform basic database operations using credentials stored in wp-config.php     
  eval                Execute arbitrary PHP code.
  eval-file           Load and execute a PHP file.
  .....

Para salir de la página de ayuda, pulsa la tecla Q de tu teclado.

Aprender más sobre un comando específico

También puedes acceder a una página de ayuda independiente para cada comando. Por ejemplo, así puedes ver más detalles sobre el comando comment:

wp help comment

Salida:

NAME
  wp comment
DESCRIPTION
  Manage comments.
SYNOPSIS
  wp comment <command>
SUBCOMMANDS
  approve        Approve a comment.
  count          Count comments, on whole blog or on a given post.
  create         Create a new comment.
  delete         Delete a comment.
  exists         Verify whether a comment exists.
  generate       Generate some number of new dummy comments.
  .....

Como puedes ver en la salida, cada comando WP-CLI tiene una lista de subcomandos. Digamos que queremos obtener el número de comentarios disponibles. Podemos utilizar el siguiente argumento:

wp comment count

Lo mejor es que puedes ir más allá para ver la página de ayuda para un subcomando de un subcomando, así:

wp help comment count

Salida:

NAME
  wp comment count
DESCRIPTION
  Count comments, on whole blog or on a given post.
SYNOPSIS
  wp comment count [<post-id>]
OPTIONS
  [<post-id>]
The ID of the post to count comments in.
.....

Hoja de trucos de los comandos WP-CLI

Si es la primera vez que usas WP-CLI, esta hoja de trucos te será muy útil. Tiene todos los comandos oficiales junto con ejemplos y parámetros globales.

Hoja de trucos de los comandos WP-CLI

Uso de WP-CLI para instalar WordPress

Es posible instalar WordPress a través de WP-CLI. Sin embargo, tendrás que crear una base de datos MySQL para tu blog antes de proceder. Si utilizas Hostinger, puedes crear la base de datos MySQL en el Panel de Control -> Bases de datos MySQL.

Si estás usando WP-CLI en un VPS o un sistema local, sigue estos pasos para crear una nueva base de datos MySQL. Sólo asegúrate de que ya has instalado MySQL en tu máquina Ubuntu o CentOS.

  1. En primer lugar, nos conectaremos a MySQL como root para crear un nuevo usuario.
mysql -u root -p

A continuación, podemos añadir un usuario y una base de datos introduciendo estas líneas una a una:

CREATE USER username;
CREATE DATABASE databasename;

No olvides cambiar los valores a tu gusto.

  1. Después, tenemos que conceder todos los permisos al usuario para modificar la base de datos.
GRANT ALL PRIVILEGES ON databasename.* TO ‘username’ IDENTIFIED BY ‘yourpassword’;
  1. Una vez hecho esto, cierra la sesión de MySQL escribiendo:
quit

Ahora puedes continuar con la instalación de WordPress. Sin embargo, necesitas estar en el directorio public_html ya que normalmente es donde deben residir los archivos de tu sitio web. Para ver el directorio actual, introduce:

pwd

En caso de que no estés en public_html, tienes que moverte como corresponde:

cd /home/username/public_html
  1. Si ya estás en ese directorio, puedes descargar la versión más reciente de WordPress ejecutando:
wp core download
  1. Ahora que la descarga se ha completado, visita tu sitio web para comprobar la instalación. Verás un formulario estándar de instalación de WordPress. Aunque puedes rellenar todas las columnas requeridas usando un navegador web, sería más fácil hacerlo con WP-CLI.
Ventana para previsualizar el comando wp core
  1. Utilizaremos el comando wp core para añadir nuestras credenciales de la base de datos MySQL a WordPress:
wp core config --dbname=wordpress --dbuser=user --dbpass=password --dbhost=localhost --dbprefix=wp_

Reemplaza los valores por defecto con los detalles de tu propia base de datos:

  • dbname: el nombre de la base de datos MySQL.
  • dbuser: el nombre de usuario de la base de datos.
  • dbpass: tu contraseña de usuario de MySQL.
  • dbhost: el nombre del servidor MySQL.
  • dbprefix: Prefijo de la tabla de la base de datos MySQL. Puedes dejarlo como wp_.
  1. Ahora, si vas a tu sitio de WordPress de nuevo, te darás cuenta de que te pide que introduzcas algunos detalles adicionales. Utilizaremos el mismo comando wp core para añadir estos detalles y completar la instalación de WordPress:
wp core install --url=yourdomain.com  --title=Site_Title --admiwp admin_user=admin_username --admin_password=admin_password --admin_email=your@email.com

La salida debería ser:

Success: WordPress installed successfully.

¡Buen trabajo! Has completado la instalación de WordPress a través de WP-CLI.

Una cosa importante a tener en cuenta, si quieres acceder y gestionar tu blog de WordPress usando la interfaz de línea de comandos, tienes que navegar primero a la carpeta public_html.

cd /home/username/public_html

Uso de WP-CLI para instalar y gestionar temas de WordPress

Vamos a intentar instalar un tema utilizando WP-XLI.

  1. Empieza por listar los temas ya instalados:
wp theme list

Salida:

+-----------------+----------+--------+---------+
| name            | status   | update | version |
+-----------------+----------+--------+---------+
| twentynineteen  | active   | none   | 1.4     |
| twentyseventeen | inactive | none   | 2.2     |
| twentysixteen   | inactive | none   | 2.0     |
+-----------------+----------+--------+---------+
  1. A partir del estado, podemos ver que el tema activo es twentyynineteen. Digamos que queremos sustituirlo por twentyseventeen.
wp theme activate  twentyseventeen

La salida debería ser:

Success: Switched to 'Twenty Seventeen' theme.
  1. Incluso puedes utilizar WP-CLI para buscar nuevos temas en el directorio oficial de temas de WordPress. En este ejemplo, nos gustaría buscar un tema con soporte para bootstrap:
wp theme search bootstrap

Salida:

Success: Showing 10 of 292 themes.
+----------------------+----------------------+--------+
| name                 | slug                 | rating |
+----------------------+----------------------+--------+
| Bootstrap Lightpress | bootstrap-lightpress | 0      |
| Bootstrap News       | bootstrap-news       | 0      |
| Bootstrap Photo      | bootstrap-photo      | 0      |
| Bootstrap Beauty     | bootstrap-beauty     | 100    |
| Bootstrap Journal    | bootstrap-journal    | 0      |
| Bootstrap Blog       | bootstrap-blog       | 40     |
| devdmbootstrap4      | devdmbootstrap4      | 100    |
| WP Bootstrap 4       | wp-bootstrap-4       | 84     |
| BPT Bootstrap        | bpt-bootstrap        | 74     |
| BootstrapFast        | bootstrapfast        | 0      |
+----------------------+----------------------+--------+
  1. Sabemos que no se puede decir mucho sobre un tema sólo por su nombre. Dicho esto, WP Bootstrap 4 suena interesante y tiene una calificación de 84. Para instalar y activar el tema con WP-CLI, utiliza:
wp theme install WP-Bootstrap-4 --activate
Bootstrap 4 WordPress Theme

Por si fuera poco, también puedes instalar un tema de WordPress especificando el directorio del archivo zip o introduciendo la URL del tema.

Uso de WP-CLI para instalar y gestionar plugins de WordPress

A continuación, echaremos un vistazo a la gestión de plugins mediante WP-CLI.

  1. Al igual que los temas, puedes instalar y gestionar los plugins a través de la línea de comandos. Para listar los plugins ya instalados, introduce:
wp plugin list

Salida:

+---------+----------+--------+---------+ | name    | status   | update | version | +---------+----------+--------+---------+ | akismet | inactive | none   | 4.1.2   | | hello   | inactive | none   | 1.7.2   | +---------+----------+--------+---------+
  1. Como puedes notar, no tenemos muchos plugins. Vamos a instalar un plugin de formulario de contacto para nuestro blog de WordPress. Primero, busca en el directorio de plugins el plugin Contact Form 7:
wp plugin search "contact form 7"

Salida:

Success: Showing 10 of 2514 plugins. +--------------------------------------+---------------------------+--------+ | name                                 | slug                      | rating | +--------------------------------------+---------------------------+--------+ | Contact Form 7                       | contact-form-7            | 92     | | Contact Bank - Contact Forms Builder | contact-bank              | 86     | | Contact Form                         | contact-forms-builder     | 90     | | Contact Form                         | contact-form-ready        | 96     | | Contact Form                         | contact-form-add          | 76     | | Contact Form                         | powr-contact-form         | 100    | | Contact Form                         | better-contact-form       | 100    | | Contact Form                         | contact-form-master       | 96     | | Contact Form                         | contact-form-maker        | 88     | | Contact Form by Supsystic            | contact-form-by-supsystic | 92     | +--------------------------------------+---------------------------+--------+
  1. Contact Form 7 es el primero de la lista. Queremos instalarlo y activarlo ya que es un gran plugin para crear formularios de contacto ligeros:
wp plugin install contact-form-7 --activate

Al igual que con los temas, los plugins se pueden instalar desde un archivo .zip y una URL.

  1. Para eliminar un plugin cambia instalar por eliminar:
wp plugin delete contact-form-7

Salida:

Deleted 'contact-form-7' plugin. Success: Deleted 1 of 1 plugins.

Uso de WP-CLI para actualizar WordPress

Actualizar WordPress con WP-CLI es un proceso de dos pasos, ya que es necesario actualizar los archivos de WordPress y la base de datos para completar este proceso.

  1. Comienza por actualizar los archivos del core de WordPress:
wp core update
  1. Ejecuta el siguiente comando para comprobar y si es necesario actualiza la base de datos a una versión requerida:
wp core update-db
  1. Así es como se actualizan los temas y plugins de WordPress con la línea de comandos. Ten en cuenta que el parámetro -all se utiliza para actualizar todos los temas/plugins instalados, pero puedes cambiarlo por un tema/plugin específico sustituyendo -all por el nombre del elemento.
  • Para los temas:
wp theme update --all
  • Para los plugins:
wp plugin update --all

Uso de WP-CLI para gestionar el contenido

En esta sección, encontrarás cómo utilizar WP-CLI para gestionar tus entradas y medios.

Entradas

WP-CLI proporciona varias formas de gestionar el contenido a través de la línea de comandos. Puede que no sea muy cómodo escribir entradas en el terminal. Sin embargo, por el bien del aprendizaje, vamos a ver cómo hacerlo.

  1. Para ver la lista de todos las entradas utiliza:
wp post list

Salida:

+----+--------------+-------------+---------------------+-------------+
| ID | post_title   | post_name   | post_date           | post_status |
+----+--------------+-------------+---------------------+-------------+
| 1  | Hello world! | hello-world | 2020-03-06 12:22:55 | publish     |
+----+--------------+-------------+---------------------+-------------+
  1. Como puedes ver sólo tenemos una entrada (Hello world!) y el ID de esta entrada es 1. Podemos borrarla con:
wp post delete 1

Salida:

Success: Trashed post 1.
  1. Para crear un nuevo puesto, utiliza:
wp post create --post_status=publish --post_title="This Post Was Created With WP-CLI" --edit
Entrada creada con WP-CLI


Este comando abrirá el editor de texto vim. Introduce el contenido y sal de vim pulsando el botón ESC, escribe :wq y pulsa Enter.

Puedes comprobar la nueva entrada en tu blog.

  1. También es posible crear una nueva entrada e importar el contenido de la misma directamente desde un archivo .txt:
wp post create ./post.txt --post_title='Sample Post' --post_status=publish
  1. Además de crear entradas, también puedes generarlas en WP-CLI. Esta función es útil si quieres probar cómo funcionará tu sitio de WordPress con muchas entradas. Para autogenerar 10 entradas, introduce la siguiente línea:
wp post generate --count=10

Medios

Con WP-CLI, puedes automatizar el proceso de importación de imágenes. Para este ejemplo, queremos importar todas las imágenes de la carpeta images_for_site. Podemos lograrlo usando un solo comando:

wp media import images_for_site/*

Uso de WP-CLI para exportar/importar WordPress

Gracias a WP-CLI, puedes exportar o importar fácilmente contenidos de una instalación de WordPress a otra.

  1. Para exportar las entradas, los términos, los autores, los comentarios y los archivos adjuntos a un archivo XML, introduce el siguiente comando:
wp export
  1. Digamos que queremos importar el mismo archivo XML a otra instancia de WordPress. En primer lugar, tenemos que instalar el plugin wp-importer:
wp plugin install wordpress-importer --activate
  1. Una vez terminada la instalación, podemos proceder a la importación. Crearemos un nuevo autor utilizando el parámetro -authors:
wp import hostingertutorials.wordpress.2020-03-06.000.xml --authors=create

Salida:

<p>All done. <a href="http://hostinger-dev-17.xyz/wp-admin/">Have fun!</a></p><p>Remember to update the passwords and roles of imported users.</p>
Success: Finished importing from 'hostingerdev.wordpress.2020-03-06.000.xml' file.

Uso de WP-CLI para gestionar la base de datos

WP-CLI también te permite gestionar tu base de datos. Aquí tienes algunos aspectos básicos:

  1. La herramienta permite ejecutar consultas SQL normales con el comando wp db query. Por ejemplo, para ver todos los usuarios registrados de WordPress, introduce:
wp db query "SELECT user_login,ID FROM wp_users;"

Salida:

+------------+----+
| user_login | ID |
+------------+----+
| user       | 1  |
+------------+----+
  1. Puedes ejecutar otras operaciones útiles como las exportaciones. Generará un archivo de volcado SQL de tu base de datos de WordPress:
wp db export

Salida:

Success: Exported to 'u373726772_wordpress-2020-03-06-3c44b24.sql'.
  1. Para importar un archivo SQL en una base de datos de WordPress, utiliza:
wp db import filename.sql

Salida:

Success: Imported from 'filename.sql'.

Uso de WP-CLI para buscar y reemplazar

¿Has movido alguna vez WordPress de un desarrollo local o staging a un hosting? Si lo has hecho, sabes lo útil que puede ser buscar y reemplazar. Mientras que una consulta SQL o un plugin podrían hacerlo, puedes realizar fácilmente la búsqueda y el reemplazo en WP-CLI con un comando.

Digamos que hemos cambiado nuestro nombre de dominio de hostinger-dev-17.xyz a hostinger-dev-17.net y necesitamos actualizar todas las URLs en nuestra base de datos de WordPress.

  1. Siempre se recomienda hacer un «simulacro» antes de realizar la búsqueda y el reemplazo reales. Esto mostrará cuántas instancias se cambiarán:
wp search-replace --dry-run 'hostinger-dev-17.xyz' 'hostinger-dev-17.net'

Salida:

Success: 14 replacements to be made.
  1. Ahora, para realizar la búsqueda y reemplazo real con WP-CLI, elimina el parámetro -dry-run:
wp search-replace 'hostinger-dev-17.xyz' 'hostinger-dev-17.net'

Salida:

Success: Made 14 replacements.

Conclusión

WP-CLI te permite gestionar tu sitio de WordPress a través de una interfaz de línea de comandos. Como has visto, puede resultar más eficiente que realizar tareas desde tu página de administración de WordPress.

Lo que es genial, esta herramienta es extensible a través de programas de terceros y comandos avanzados. En definitiva, es una gran herramienta para agilizar tu flujo de trabajo y mejorar tu productividad.

En este tutorial, te hemos mostrado los fundamentos básicos de WP-CLI. Esperamos que ahora puedas dominar varias tareas usando la línea de comandos, como la instalación y gestión de WordPress, plugins, temas, posts, bases de datos, etc. ¡Buena suerte y asegúrate de comentar abajo si tienes alguna pregunta!

Author
El autor

Diana Catalina Herrera Infante

Diana es una traductora con amplia experiencia en diferentes tipos de documentos, entre ellos tutoriales y artículos especializados en la creación de sitios web. Además, cuenta con experiencia en el área de marketing digital. En su tiempo libre le gusta hacer ejercicio y ver una buena película.