Gestionar wordpress por terminal con wp-cli

Lo bonito de meterte en problemas es que para salir de ellos tienes que rebanarte los sesos para encontrar soluciones. Dentro de estas soluciones suelen aparecer metodologías, programas y funcionalidades nuevas. En el post de hoy, tras el marronaco del otro día, la herramienta que reapareció en mi terminal fue wp-cli (como los libros aquellos que has oído a hablar de ellos, pero un día aparece de nuevo y te lo comes como un sabroso manjar).

Este fin de semana pasado el proyecto de kaosenalred.net se ha reconvertido a lanueve.info. En su momento hice este otro post explicando como crawlear una página web con wordpress con httrack. El cliente, en lugar de esperar unas horas mas y arreglar el problema de su wordpress, decidió montar otro wordpress. En el lapso de tiempo de la web vieja y la nueva, en el nuevo wordpress han creado la friolera de 2600 entradas nuevas. A la hora de fusionar las dos webs había varias formas, la escogida esta vez ha sido usar Herramientas > Exportar, lo cual te genera un fichero .xml (WXR) con las categorías, los autores, los medios y las entradas. Mi experiencia en importaciones de este tipo en el pasado ha sido que en blogs con mucho contenido es timeout y problemas asegurados, así que otra solución es wp-cli. wp-cli es un programa para gestionar instancias de wordpress.

Para instalarlo, descargaremos el fichero wp-cli.phar, le daremos permisos de ejecución y lo guardaremos al directorio /usr/local/bin/ como wp:

root@planet3D:~# curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar
root@planet3D:~# chmod +x wp-cli.phar
root@planet3D:~# mv wp-cli.phar /usr/local/bin/wp

Para usarlo entraremos como usuario www-data o el usuario con el que esté corriendo el servidor http (apache o nginx) sobre el root del wordpress (donde está el fichero wp-config.php)

root@planet3D:~# su - www-data -s /bin/bash
www-data@planet3D:~$ cd /var/www/wp/
www-data@planet3D:~$ wp --info
OS:	Linux 5.10.0-11-amd64 #1 SMP Debian 5.10.92-1 (2022-01-18) x86_64
Shell:	/bin/bash
PHP binary:	/usr/bin/php7.4
PHP version:	7.4.25
php.ini used:	/etc/php/7.4/cli/php.ini
MySQL binary:	/usr/bin/mysql
MySQL version:	mysql  Ver 15.1 Distrib 10.5.12-MariaDB, for debian-linux-gnu (x86_64) using  EditLine wrapper
SQL modes:	
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:	/home/virtualmin/kaosenlared.net/public_html
WP-CLI packages dir:	
WP-CLI global config:	
WP-CLI project config:	
WP-CLI version:	2.6.0

Si queremos ver los comandos posibles para wp-cli, recomiendo ir a la documentación de wp-cli.

En mi caso el comando que me ha interesado para importar el wordpress nuevo al viejo para después volver a empezar el crawling con httrack es wp import

www-data@planet3D:~$ wp import WordPress.xml --authors=create

Y listos, ya no me extiendo mas, todo lo que necesitas saber en la documentación :) igualmente aquí os dejo una captura de pantalla de las opciones que te da wp-cli

One Comment

  1. Gràcies por el currazo, en ese website de referencia.

    Mis dos céntimos… , para futuras vidas / iteraciones , con herramientas Web más orientadas a ‘el contenido en ficheros markdown’, quizás resultaría más sencilla una operación de reconversión/fusión de tal magnitud ?
    salut

    Respon

Deixa un comentari

L'adreça electrònica no es publicarà. Els camps necessaris estan marcats amb *

Aquest lloc utilitza Akismet per reduir els comentaris brossa. Apreneu com es processen les dades dels comentaris.