WP-CLI v2-Administrar WordPress Desde el Terminal

Durante la mayor parte de su vida útil, WordPress se ha construido utilizando una base de código simple con un toque de PHP orientado a objetos que es el sistema más abstracto. En los últimos años, sin embargo, esto está cambiando para mejor. Desde pruebas unitarias hasta preprocesamiento de CSS y herramientas de línea de comandos, aparecen cada vez más activos fáciles de usar para desarrolladores. En este artículo, veremos uno de mis favoritos: WP-CLI.

Qué es WP-CLI?

WP-CLI es una herramienta de línea de comandos para que los desarrolladores gestionen tareas comunes (y no tan comunes) de una instalación de WordPress. Puede agregar / eliminar usuarios, publicaciones, categorías, insertar datos de prueba, buscar y reemplazar en la base de datos, restablecer contraseñas, ayudar a solucionar problemas de rendimiento y mucho más.

Apoyo

WP-CLI ha sido un proyecto de código abierto durante más de una década, siendo mantenido principalmente por Daniel Bachhuber desde 2003. El objetivo principal de WP-CLI es ayudar a acelerar los flujos de trabajo de los desarrolladores de WordPress.

A lo largo de los años, el proyecto se ha convertido en mucho más! Ahora incluso se está convirtiendo en un requisito para otros proyectos de código abierto como Trellis y Bedrock. A partir de enero de 2017, WP-CLI se trasladó oficialmente a WordPress.org y ahora también está siendo co-mantenido por Alain Schlesser.

WP-CLI v2 se lanzó el 8 de agosto de 2018, por lo que también exploraremos algunos de los cambios y nuevas características. Si eres cliente de Kinsta, WP-CLI v2.0.1 está instalado de forma predeterminada en todos nuestros servidores, simplemente SSH en su servidor para comenzar. El acceso SSH está incluido en todos nuestros planes de alojamiento (¿No se puede conectar a través de SSH? Corregir el error SSH «Conexión rechazada»).

  • Obtener WP-CLI
  • Los Conceptos básicos De WP-CLI
  • Comandos WP-CLI en General
  • Ejemplos útiles
  • Usar WP-CLI de forma remota
  • Usar Scripts Bash

Obtener WP-CLI

El requisito mínimo de PHP en WP-CLI v2.0.0 se ha elevado a PHP 5.4. Si bien este es un buen paso adelante, le recomendamos que al menos ejecute una versión compatible de PHP, es decir, 5.6 o superior. PHP 7.2 es el valor predeterminado en todas las instalaciones de Kinsta, tanto por razones de seguridad como de rendimiento. También tenemos PHP 7.3 y 7.4 disponibles.

Para comenzar, necesitará instalar WP-CLI, un proceso muy simple. Los pasos para Linux y OSX son los siguientes, ejecute estos tres comandos uno tras otro:

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

Si algo sale mal o está en Windows, consulte las instrucciones básicas o los métodos de instalación alternativos.

Una vez hecho esto, debería poder emitir el comando wp --info y obtener una respuesta significativa.

El proceso es el mismo si desea instalar WP-CLI en su servidor. Recuerde, para los clientes de Kinsta, WP-CLI ya está instalado. ¿No está seguro de qué versión está ejecutando actualmente? Siempre puede emitir el comando wp cli version para averiguarlo.

Los conceptos básicos de WP-CLI

Tener acceso a WordPress desde la línea de comandos es poderoso en sí mismo, pero puede brindarle aún más control y ganancias de velocidad al usar scripts bash.

Los scripts Bash le permiten ejecutar una secuencia de comandos con un solo comando. Puede escribir bash install-and-setup.sh y obtener el siguiente resultado:

  • Descargar WordPress
  • Crear y rellenar wp-config.php
  • Crear la base de datos
  • Instalar WordPress
  • Instalar y activar cualquier complemento que necesite
  • Instalar y activar un tema
  • Descargar y añadir contenido de prueba

pasos que tomaría para crear un nuevo entorno de prueba para un proyecto. Normalmente me tomaría de 5 a 10 minutos al menos, especialmente si hay algunos complementos involucrados. Emitir un solo comando es obviamente mucho más rápido.

Comandos WP-CLI en general

Si está acostumbrado a trabajar en el terminal, no hay nada especial en WP-CLI para usted. Los comandos siempre comienzan con wp seguido de un comando y un subcomando, seguido de parámetros obligatorios y opcionales, algo como esto:

wp command subcommand requiredparam --optionalparam --optionalparam2=value

Vamos a instalar un tema para ver cómo funciona con un comando real:

wp theme install twentyseventeen --activate

Esto instalará y activará el tema Twenty Seventeen en su instalación de WordPress.

Tenga en cuenta que WP-CLI funcionará con la instalación de WordPress que se encuentra actualmente en el terminal. Si cambia de directorio para ir a otra instalación de WordPress, funcionará con esa.

Ejemplos útiles

¡Eso fue WP-CLI en pocas palabras! Si bien hay algunas cosas avanzadas que puede hacer, que abordaremos en un momento, ya sabe lo suficiente para comenzar y hacer lo que necesite. Recomiendo echar un vistazo a la lista de comandos, pruebe algunos de ellos. Echaremos un vistazo a algunas cosas útiles aquí, luego pasaremos a usar WP-CLI sobre SSH y usar scripts bash.

Instalación de WordPress

Uso WP-CLI mucho para configurar entornos de prueba, el primer paso de los cuales es una instalación de vainilla. Aquí hay una lista de comandos que corro:

wp core downloadwp core config --dbname=mydbname --dbuser=mydbuser --dbpass=mydbpass --dbhost=localhost --dbprefix=whebfubwef_ --extra-php <<PHPdefine( 'WP_DEBUG', true );define( 'WP_DEBUG_LOG', true );PHPwp db createwp core install --url=http://siteurl.com --title=SiteTitle --admin_user=username --admin_password=mypassword 

¡Ten en cuenta lo genial que es esto! La versión más reciente de WordPress se descarga con el primer comando. El segundo comando configura el archivo de configuración con el acceso a la base de datos y algo de PHP adicional al final. Las constantes adicionales aseguran que tengamos nuestras opciones de depuración activadas para realizar pruebas. Tenemos una guía detallada aquí si desea obtener más información sobre la depuración de WordPress.

El tercer comando crea la base de datos (WP-CLI utiliza la información de acceso a la base de datos del archivo de configuración) y, finalmente, instalamos WordPress utilizando un par de parámetros.

Reinstalar el núcleo de WordPress

También puede reinstalar el núcleo de WordPress utilizando WP-CLI. El siguiente comando descargaría WordPress core sin los temas y complementos predeterminados.

wp core download --skip-content --force

Cambiar URL de WordPress

Hay muchas razones por las que es posible que necesite o desee cambiar su URL de WordPress. Tal vez esté cambiando de dominio, pasando a un subdominio, actualizando de www a no www, moviendo archivos o incluso migrando de HTTP a HTTPS. Sea cual sea el caso, puede usar fácilmente el comando wp option update para esto. Aquí hay un ejemplo a continuación:

wp option update home 'http://example.com'wp option update siteurl 'http://example.com'

Lista de Complementos actuales con Detalles

Para obtener una lista de complementos actuales instalados en un sitio, simplemente use el siguiente comando. En este ejemplo, puedes ver que tenemos instalado el plugin Schema y Yoast SEO. También devolverá el estado (activo / desactivado), si hay una actualización disponible, y la versión actual.

wp plugin list
Lista de complementos WP-CLI

Lista de complementos WP-CLI

Instalación de varios complementos

Para instalar varios complementos, simplemente puede acumular parámetros. Este es un ejemplo que descarga y activa 3 complementos:

wp plugin install advanced-custom-fields jetpack ninja-forms --activate

Tenga en cuenta que los nombres de los complementos provienen de su nombre en el repositorio. La forma más fácil de resolver esto es visitar su página y mirar la URL o usar wp plugin search searchterm que le dará una lista en el terminal.

URL del repositorio de complementos de WordPress

URL del repositorio de complementos de WordPress

También puede instalar versiones anteriores de complementos de WordPress si es necesario con el atributo --version.

wp plugin install wordpress-seo --version=4.8 --activate

Aún mejor, puede instalar complementos desde archivos remotos, no solo desde el repositorio, lo que es útil si está desarrollando un complemento o utilizando un complemento premium. El siguiente comando instala dos complementos del repositorio y uno de un servidor de Amazon S3.

wp plugin install advanced-custom-fields jetpack https://d1qas1txbec8n.cloudfront.net/wp-content/uploads/2015/06/23073607/myplugin.zip --activate

Desactivar varios complementos

Para desactivar un solo complemento, puede ejecutar el siguiente comando.

wp plugin deactivate wordpress-seo

Para desactivar todos los complementos a la vez, ejecute el siguiente comando.

wp plugin deactivate --all
WP-CLI desactivar todos los complementos

WP-CLI desactivar todos los complementos

Este comando anterior puede ser útil si está resolviendo problemas de compatibilidad y simplemente necesita desactivar todos los complementos de una sola vez. A continuación, puede volver y habilitarlos uno por uno, probando a medida que avanza.

Actualizar complementos

También puede actualizar manualmente los complementos de WordPress. Ejemplo a continuación:

wp plugin update wordpress-seo
wp-cli actualiza manualmente el plugin de wordpress

WP-CLI actualiza manualmente el plugin de WordPress

Búsqueda y reemplazo de bases de datos

Una de las principales razones por las que es difícil migrar un sitio simplemente copiando y pegando una base de datos es que la base de datos contiene matrices serializadas. Si necesita reemplazar todas las instancias de http://testsite.com por http://livewebsite.com, sus matrices serializadas no tendrán sentido porque el recuento de cadenas no coincidirá.

Suscríbase al Boletín de Noticias

Aumentamos nuestro tráfico un 1,187% con WordPress. Te enseñaremos cómo.

¡Únete a más de 20,000 personas que reciben nuestro boletín semanal con consejos de WordPress de expertos!

Subscribirse ahora

El comando search-replace primero quita la serialización de los arrays, luego realiza la búsqueda y el reemplazo, y luego vuelve a serializar los arrays. Puede hacerlo con un simple comando:

wp search-replace oldstring newstring

Los parámetros adicionales le permiten hacer mucho más, incluida la vista previa de lo que se reemplazará usando --dry-run.

Importar y Exportar

Hay dos formas de exportar contenido con WP-CLI. Puede crear un archivo XML, al igual que la herramienta de exportación de WordPress, o puede exportar/importar la base de datos raw. Encuentro que lo último es mucho más útil en mi rutina diaria, es útil cuando sincronizo sitios.

wp db export es todo lo que necesita hacer para crear un archivo SQL y wp db import file.sql es todo lo que necesita para importarlo. Funciona como un encanto, solo tenga cuidado de no sobrescribir nada que necesite, la importación básicamente volcará la base de datos existente y utilizará el archivo SQL suministrado en su lugar.

Administrar roles y capacidades

WP-CLI puede administrar roles por usted con bastante facilidad utilizando el comando wp role. Esto es bastante genial si quieres probar cómo funciona tu plugin con roles personalizados, pero en realidad no creas los roles dentro de tu plugin.

wp role create organizer Organizerwp cap list 'editor' | xargs wp cap add 'organizer'wp cap add 'organizer' 'manage-events'

Los comandos anteriores crearán un nuevo rol (Organizador), agregarán todas las capacidades del rol de editor y luego agregarán una nueva capacidad: manage-events.

Generar datos de prueba

Me encantan todo tipo de funciones de imitación, que agregan contenido ficticio a su sitio que puede usar para pruebas. WP-CLI tiene un par de estos incorporados, aquí hay algunas funciones que generarán usuarios, términos y publicaciones.

wp user generate --count=5 --role=editorwp user generate --count=10 --role=authorwp term generate --count=12wp post generate --count=50

Administrar eventos WP-Cron

Puede administrar eventos WP-Cron o un trabajo de WordPress Cron en WP-CLI. Por ejemplo, el siguiente comando le dará su lista de eventos cron actual.

wp cron event list
lista de eventos wp-cron

lista de eventos wp-cron

Eliminar transitorios

Incluso puede eliminar y borrar uno o todos los transitorios utilizando el siguiente comando.

wp transient delete --all

Si está ejecutando varios sitios, necesitará un comando un poco más complicado. De forma predeterminada, el comando solo comprueba la tabla wp_options. No comprueba wp_1_options, wp_2_options, etc.

Luchando con el tiempo de inactividad y problemas de WordPress? ¡Kinsta es la solución de alojamiento diseñada para ahorrarle tiempo! Echa un vistazo a nuestras características

wp transient delete --all --network && wp site list --field=url | xargs -n1 -I % wp --url=% transient delete --all

Limpiar la tabla wp_options

La tabla wp_options puede ser un culpable común de los tiempos lentos de consulta en su sitio debido a los datos cargados automáticamente que se dejan atrás de los complementos y temas de terceros. Echa un vistazo a este gran artículo de WP Bullet sobre cómo usar WP-CLI para limpiar tu tabla wp_options.

Eliminar revisiones de WordPress

En sitios grandes, las revisiones de WordPress pueden sumarse muy rápidamente a miles de filas en su base de datos que no son necesarias. Puede eliminar revisiones posteriores con WP-CLI. Aquí hay un ejemplo del comando:

$ wp post delete $(wp post list --post_type='revision' --format=ids)
wp-cli eliminar revisiones de wordpress

WP-CLI eliminar revisiones de WordPress

Controlar el modo de mantenimiento

A partir de WP-CLI v2.2. 0, ahora puede controlar el modo de mantenimiento en su sitio de WordPress. Ejemplo:

wp maintenance-mode activatewp maintenance-mode deactivatewp maintenance-mode status

Indexación de datos con Elasticsearch

Elasticsearch es un motor de búsqueda de texto completo de código abierto. Se utiliza para indexar datos y buscar esos datos de forma increíblemente rápida. Ofrecemos esto como un complemento para los clientes de Kinsta. Puede usar comandos WP-CLI de ElasticPress para realizar indexaciones sobre SSH. Ejemplo:

wp elasticpress index

Trabajar con sitios multilingües

WP-CLI v2.0.0 incluye una nueva familia de comandos wp i18n para aquellos que trabajan con sitios multilingües. Por ejemplo, puede crear un archivo POT para un plugin o tema de WordPress.

wp i18n make-pot <source> ] 

Consulte la documentación del comando i18n.

Usando WP-CLI con WooCommerce

¿Trabajando con sitios de comercio electrónico? recommend Recomendamos revisar la increíble guía de desarrollo de WooCommerce WP-CLI de Robot Ninja para obtener comandos rápidos y fáciles que puede usar. Generar una lista de clientes, pedidos e incluso crear productos a granel es posible con WP-CLI.

Usar WP-CLI de forma remota

Una de las mejores cosas que puede hacer con WP-CLI es administrar sus instalaciones remotas de WordPress. Este es realmente el sueño de un administrador de sitios web hecho realidad.

Para ejecutar comandos WP-CLI sin problemas en un servidor remoto a través de SSH, anteriormente necesitaba el comando adicional wp-cli-ssh. Pero a partir de la v0. 24. 0, ¡ahora es parte de WP-CLI en sí! Important

Importante: Necesita WP-CLI instalado tanto en el equipo desde el que ejecuta el comando como en su servidor.

Configuración de servidores remotos

Puede configurar sus servidores de forma global o local. Para configurarlos globalmente, utilice el archivo config.yml. También puede usar los archivos wp-cli.yml o wp-cli.local.yml en su directorio de trabajo actual.

La configuración de los servidores funciona algo como esto, péguelo en uno de los archivos mencionados:

ssh: staging: cmd: ssh %pseudotty% %cmd% url: http://myseite.com path: /www/path/to/site/root

Una vez hecho todo esto, puede escribir el siguiente comando para actualizar WordPress en su sitio remoto:

wp ssh core update --host=staging

Si tienes o administras muchos sitios, ¡creo que puedes ver que esto es increíble! El script le pedirá una contraseña, pero si usa claves RSA para iniciar sesión, también puede renunciar a eso. Echa un vistazo a este artículo para configurarlo.

Usar scripts Bash

Los scripts Bash le ahorran aún más tiempo al automatizar tareas. ¿Recuerdas cómo necesitábamos escribir muchos comandos para instalar WordPress? Puedes hacerlo con un solo guión de bash. Dentro de un directorio, cree un archivo install.sh. Pega el mismo código que teníamos antes y guárdalo.

wp core downloadwp core config --dbname=mydbname --dbuser=mydbuser --dbpass=mydbpass --dbhost=localhost --dbprefix=whebfubwef_ --extra-php <<PHPdefine( 'WP_DEBUG', true );define( 'WP_DEBUG_LOG', true );PHPwp db createwp core install --url=http://siteurl.com --title=SiteTitle --admin_user=username --admin_password=mypassword 

Todo lo que necesita hacer ahora es escribir bash install.sh y todo se hará por usted, sin intervención del usuario. Si administras muchos sitios, puedes configurar todos tus entornos y crear un script bash como este:

wp ssh core update --host=clientAwp ssh core update --host=clientBwp ssh core update --host=clientCwp ssh core update --host=clientD

Cuando salga una nueva versión de WordPress, ¡esto podría ahorrarle mucho tiempo! Dado que puede hacer lo que quiera con WP-CLI, incluso puede actualizar temas y complementos regularmente en varios sitios de clientes a la vez.

Resumen

WP-CLI realmente es el sueño hecho realidad del desarrollador y administrador de sitios web. Como desarrolladores, podemos crear sitios de prueba en un santiamén, agregar contenido de prueba y hacer todo tipo de magia de importación/exportación. Los administradores de sitios pueden manejar actualizaciones de sitios y otras tareas para varios sitios con comandos únicos. ¡Asegúrese de revisar las notas de la versión WP-CLI v2!

Si aún no ha probado WP-CLI, le insto a que lo pruebe. También hay un montón de comandos de la comunidad como WP-CLI-SSH que agregan aún más características excelentes. Si tiene problemas, asegúrese de revisar la documentación de problemas comunes de WP-CLI.

No olvide que la arquitectura basada en Google Cloud de Kinsta admite WP-CLI listo para usar. Si desea probar la arquitectura de alojamiento de WordPress más moderna y tener acceso a excelentes herramientas como WP-CLI, pruebe nuestro alojamiento de WordPress administrado.

Si disfrutaste de este artículo, te encantará la plataforma de alojamiento de WordPress de Kinsta. Aumente la carga de su sitio web y obtenga soporte 24/7 de nuestro veterano equipo de WordPress. Nuestra infraestructura impulsada por Google Cloud se centra en el escalado automático, el rendimiento y la seguridad. ¡Permítanos mostrarle la diferencia de Kinsta! Echa un vistazo a nuestros planes



+