Usar WP-CLI para el mantenimiento de WordPress

Última revisión: 2 de octubre de 2021

Hacer mantenimiento de un sitio WordPress no suele ser complejo, pero a veces puede ser complejo gestionar muchos sitios en un mismo servidor. Así que si eres un Administrador de Sistemas al que le gusta la consola, seguramente seas de esos a los que WP-CLI le enamora por toda la funcionalidad que permite.

En el sitio oficial tienes disponible un manual de instalación muy sencillo, pero no es de eso de lo que quiero hablaros, sino de la posibilidad que tiene este sistema para hacer mantenimientos y pruebas de estado del sistema.

NOTA: Este código está basado en la versión 1.5.0 de WP-CLI

Una vez lo tengas instalado y funcionando, puedes probar lo siguiente… ya verás que en muchas ocasiones se realizan tareas que pueden parecer repetitivas, pero son básicamente para comprobar que todo está bien y trabajar de forma más tranquila.

Instalación de WP-CLI

La instalación es bastante simple.

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

Con esto descargamos el software, verificamos que está y lo configuramos en una carpeta para que esté disponible desde todo el sistema.

A partir de aquí podemos hacer algunas cosas.

NOTA: los comandos a continuación son un ejemplo de lo que se puede hacer, pero tienes documentación de todos los comandos si quieres hacer cosas más específicas.

Verificar que tenemos WP-CLI instalado

La ejecución tan sencilla como ver la información de la instalación del software.

wp --info

Actualización del software del WP-CLI

Antes de empezar a trabajar con WP-CLI, lo que haremos será una verificación de qué versión estamos utilizando.

wp cli version

Y posteriormente verificaremos si existe alguna versión nueva.

wp cli check-update

Lo que nos llevaría, dado el caso, a actualizar el WP-CLI.

wp cli update

Análisis

Antes de realizar ningún cambio, vamos a analizar el estado del sitio web. Aunque WP-CLI permite pasar por parámetro una carpeta local, en este caso lo haremos todo dentro de la propia instalación que vamos a analizar.

cd /web/example.com/

Una vez estemos dentro de la instalación de WordPress, haremos una primera verificación para comprobar que el núcleo no está hackeado ni infectado y que los ficheros corresponden con la descarga oficial.

wp core verify-checksums

De la misma manera, haremos el trabajo para los plugins, eso sí, solo aquellos que se encuentran en el repositorio oficial.

wp plugin verify-checksums

Lo siguiente que vamos a hacer es verificar la configuración que tenemos el el [wp-config.php]. Con este repaso visual podremos detectar si hay algún valor que quizá no conozcamos o que no hayamos incluido nosotros.

wp config get

Posteriormente vamos a hacer un análisis de los usuarios. Este análisis sobre todo va bien cuando tienes una lista de usuarios reducida, ya que si das acceso a otros usuarios, puede ser bastante largo e inútil hacer esta revisión.

wp user list

De la misma forma, vamos a comprobar que el prefijo de las tablas de la base de datos es el correcto.

wp db prefix

Y, una vez verificado, vamos a hacer un listado de todas las tablas que tenemos, para verificar que son las correctas y que no han aparecido o desaparecido.

wp db tables

Una vez aquí, otro dato que podemos analizar son las configuraciones de «rewrite» (URL limpias) que hay disponibles.

wp rewrite list

Y en caso de que quieras hacer un refresco y regenerarlas, lo puedes hacer.

wp rewrite flush

Actualización del CORE de WordPress

Lo primero que vamos a ver es qué versión del núcleo tenemos instalada.

wp core version

Y después, si existe alguna nueva versión disponible para instalar.

wp core check-update

En caso de quererlo, podemos hacer una actualización sencilla, o podemos, de forma alternativa, forzar a que se instale una versión o sobrescribir la actual.

wp core update
wp core update --force --version 1.2.3

Posteriormente, si se realiza una actualización, deberíamos ejecutar el sistema que también haga la actualización de la base de datos si es necesario.

wp core update-db

Actualización de PLUGINS de WordPress

Para empezar, vamos a hacer un listado de todos los plugins que tenemos instalados.

wp plugin list

Y una vez veamos lo que tenemos, vamos a revisar aquellos que requieren de una actualización.

wp plugin update --dry-run --all

Si estamos seguros de querer actualizar todo, podemos hacerlo sin problema, o podemos ir plugin a plugin si es, por ejemplo, algo complejo (tipo WooCommerce).

wp plugin update --all
wp plugin update slug-del-plugin

Actualización de THEMES de WordPress

El caso de las plantillas es muy similar al de los plugins. Lo primero que haremos es listar todas las plantillas que tenemos.

wp theme list

Y posteriormente ver cuáles se pueden actualizar.

wp theme update --dry-run --all

Así, de la misma manera, podemos actualizar todas o una en concreto.

wp theme update --all
wp theme update slug-de-la-plantilla

Actualización de TRANSLATIONS de WordPress

Comencemos haciendo una lista de los idiomas disponibles en el sitio.

wp language core list --status=installed

Y veamos qué idiomas requieren de algún tipo de actualización.

wp language core update --dry-run

Y, posteriormente, hagamos las actualizaciones.

wp language core update

Base de datos

Tras hacer un mantenimiento de todos los elementos de software, lo siguiente podría ser hacer una revisión de la base de datos, sobre todo tras todas las actualizaciones anteriores.

Lo siguiente será ver cuánto ocupa la base de datos. Este dato es poco habitual tenerlo pero muchos alojamientos compartidos tienen limitaciones en su tamaño, por lo que será importante controlar su crecimiento.

wp db size

Para acabar, haremos una optimización de la base de datos que ayude a desbloquear cualquier tipo de elemento que haya atascado, además del tamaño y recursos de las tablas.

wp db optimize

En el caso específico de necesitar una revisión concreta de la base de datos porque pensamos que puede estar corrupta o tener algún problema, tenemos los siguientes comandos que analizan, optimizan y reparan los problemas que pueda haber.

wp db check
wp db optimize
wp db repair

Mantenimiento de caché

La caché de WordPress es un sistema que a veces puede parecer una caja negra, pero muy útil para su rendimiento y seguridad. Es por esto que deberemos estar atentos a su mantenimiento.

Lo primero que haremos será una limpieza de los transient (caché en base de datos). En este caso eliminaremos aquellos que no son necesarios (los caducados)

wp transient delete --expired

Y si por alguna razón lo necesitamos, tenemos disponible la opción de vaciar por completo la caché de disco o memoria.

wp cache flush

Gestión de copias de seguridad

Exportación e importación de la base de datos

wp db export --porcelain
wp db import wpdatabase.sql

Y de la misma forma, Exportación e importación de los contenidos del sitio según el formato de datos de WP Data (WXR file).

wp export
wp import examplewp.xml --authors=create

Regenerar los Thumbnails

En ocasiones por cambios de plantilla o de tamaños de imagen, es necesario volver a regenerar todos los thumbnails del sitio. En este caso podemos hacer una versión masiva, o una simplemente de aquellos que no estén creados o disponibles.

wp media regenerate --yes
wp media regenerate --yes --only-missing

Sobre este documento

Este documento está regulado por la licencia EUPL v1.2, publicado en WP SysAdmin y creado por Javier Casares. Por favor, si utilizas este contenido en tu sitio web, tu presentación o cualquier material que distribuyas, recuerda hacer una mención a este sitio o a su autor, y teniendo que poner el material que crees bajo licencia EUPL.