Instalación, actualización y administración de complementos de WordPress con WP-CLI

Publicado: 2022-07-26

WP-CLI le permite hacer prácticamente cualquier cosa que pueda hacer en el administrador de WordPress, pero en la línea de comandos. Esto ahorra mucho tiempo y proporciona un flujo de trabajo más limpio. Puede usar WP-CLI para administrar el núcleo de WordPress, ejecutar actualizaciones de temas, administrar instalaciones multisitio y mucho más. En este artículo, nos concentraremos en uno de los casos de uso más comunes, administrar sus complementos de WordPress.

Los comandos de WP-CLI están todos estructurados de la misma manera. Siempre hay un comando principal (como wp plugin ) y un subcomando (como install ), seguidos de parámetros e interruptores. Nos concentraremos en el wp plugin y sus subcomandos en este artículo, pero puede ver una explicación más detallada en nuestra guía de la estructura de comandos WP-CLI.

Ese artículo usó el comando wp plugin como ejemplo, destacando cómo instalar y activar complementos usando WP-CLI. En este artículo, profundizaremos mucho más en cómo administrar nuestros complementos utilizando la interfaz de línea de comandos de WordPress.

Instalación y activación de complementos

Actualmente hay 16 subcomandos oficiales para el comando principal del wp plugin . En esta sección, cubriremos los subcomandos para la instalación y activación. También veremos cómo instalar y activar complementos con un solo comando. También veremos cómo instalar complementos de fuentes distintas al directorio de complementos de WordPress.

Ingrese wp plugin install seguido del slug oficial del complemento para instalar la última versión:

instalación del complemento wp hola-muñeca
Instalación de Hello Dolly (1.7.2)
Descargando el paquete de instalación desde https://downloads.wordpress.org/plugin/hello-dolly.1.7.2.zip...
Usando el archivo en caché '/Users/eriktorsner/.wp-cli/cache/plugin/hello-dolly-1.7.2.zip'...
No se pudo verificar la autenticidad de hello-dolly.1.7.2.zip ya que no se encontró ninguna firma.
Desempacando el paquete...
Instalando el complemento...
Complemento instalado con éxito.
Éxito: se instalaron 1 de 1 complementos.

A continuación, activamos el complemento usando el comando de wp plugin activate :

Complemento wp activar hola-muñeca
Complemento 'hello-dolly' activado.
Éxito: 1 de 1 complementos activados.

Búsqueda de un slug de complemento

Tenga en cuenta que el slug a menudo es diferente del nombre del complemento. El slug es visible en la URL del complemento en el directorio de complementos de WordPress, pero puede acelerar su flujo de trabajo siguiendo la línea de comando y usando el subcomando de search , seguido de dos parámetros y sus valores: --per-page=1 y --fields=name,slug .

El parámetro opcional --per-page le dice a WP-CLI cuántos resultados mostrarnos, en este caso solo uno. Por defecto mostrará 10 resultados si no le da este parámetro. Le he dado un valor de 1 aquí porque solo quiero ver el resultado más relevante.

El parámetro --fields le dice a WP-CLI que solicite campos específicos de la API, en este caso, el nombre y el slug del complemento. Hay una amplia gama de valores que puede usar aquí, incluida la version para ver el número de versión actual y la rating para ver las calificaciones del complemento como un porcentaje y el número total de calificaciones. En su lugar, puede usar --field=<field> si solo desea mostrar el resultado de un solo campo. Debe usar el parámetro --fields o --field con el comando wp plugin search .

búsqueda del complemento wp "wp descargar medios" --por página = 1 --fields = nombre, slug
Éxito: Mostrando 1 de 66 complementos.
+------------------------------------------------- -----------------------------------------+------------------ --------+
| nombre | babosa |
+------------------------------------------------- -----------------------------------------+------------------ --------+
| WP Offload Media Lite para Amazon S3, DigitalOcean Spaces y Google Cloud Sto | amazon-s3-y-cloudfront |
| rabia | |
+------------------------------------------------- -----------------------------------------+------------------ --------+

Como la respuesta a este comando es una lista, esta es una buena oportunidad para mostrar lo que puede hacer el parámetro --format . Pidámosle a WP-CLI que nos dé esa lista en formato JSON, y luego canalícela a través de la utilidad jq para un formato más bonito. La utilidad jq es un procesador JSON de línea de comandos liviano que puede instalar en el enlace anterior o probar en línea. Asegúrese de omitir | jq | jq del siguiente comando si no lo tiene instalado.

Cuando solicitamos una salida con formato JSON, WP-CLI omite el mensaje de estado para que no tengamos JSON roto:


$ wp plugin search "wp offload media" --por página=1 --fields=nombre,slug --format=json | jq
[
  {
    "name": "WP Offload Media Lite para Amazon S3, DigitalOcean Spaces y Google Cloud Storage",
    "slug": "amazon-s3-y-cloudfront"
  }
]

Para activar el complemento una vez que esté instalado, use el wp plugin activate seguido del slug oficial del complemento.

Instalar y activar un complemento al mismo tiempo

Cuando se trata de administrar sus complementos con WP-CLI, una de las grandes ventajas es que puede instalar y activar un complemento con un solo comando. Si bien activate se puede usar como un subcomando con el wp plugin , también se puede usar como un parámetro con el comando de wp plugin install :

# Instalar y activar el complemento al mismo tiempo
instalación del complemento wp --activar hola-muñeca

Instalación de una versión específica del complemento

No es raro que desee instalar una versión específica de un complemento con fines de prueba. Siempre que la versión que desea aún esté disponible en el directorio de complementos de WordPress, puede seleccionar cualquier versión que considere adecuada:

# Instalar una versión de complemento específica
wp plugin instalar woocommerce --version=5.5.3

Instalación de complementos desde otras ubicaciones

El directorio de complementos de WordPress no es el único lugar donde podemos obtener complementos. También podemos instalar un complemento directamente desde el sistema de archivos. La mayoría de las veces, cuando compra un complemento premium, obtiene la entrega inicial en forma de archivo zip. WP-CLI felizmente instalará ese archivo zip directamente, sin necesidad de extraer el paquete primero:

# Instalar un complemento desde la carpeta Descargas
$ wp plugin install ~/Descargas/advanced-custom-fields-pro.zip

Esto también funciona si el complemento que desea instalar está disponible en una URL, quizás solo accesible mediante el suministro de credenciales a través de parámetros de solicitud o en un servidor con un certificado autofirmado:

# Obtener el complemento desde una URL
instalación del complemento wp http://www.hellfish.media/my-plugin.zip

# ...o incluso un archivo privado de un depósito de Amazon:
instalación del complemento wp https://s3.amazonaws.com/bucketname/my-plugin.zip?X-Amz-SignedHeaders=host&X-Amz-Expires=900&X-Amz-Signature=abc123

# Desde nuestro servidor interno con un certificado autofirmado:
instalación del complemento wp https://intranet.hellfish.media/my-plugin.zip --insecure

Actualización de complementos con WP-CLI

Una vez que tenga un complemento instalado, es importante mantenerlo actualizado por razones de seguridad. Para saber si hay algún complemento para actualizar, podemos ejecutar el comando wp plugin list :

lista de complementos wp
+----------------------------------------+----------+------ -----+---------+
| nombre | estado | actualizar | versión |
+----------------------------------------+----------+------ -----+---------+
| amazon-s3-y-cloudfront | activo | disponible | 2.6.1 |
| hola muñequita | activo | disponible | 1.7.1 |
| wunderdevmu | imprescindible | ninguno | 1.0 |
+----------------------------------------+----------+------ -----+---------+

En este caso, los complementos Hello Dolly y WP Offload Media necesitan actualizaciones. Naturalmente, hay un subcomando separado para eso llamado update .

Podemos actualizarlos uno por uno, o ser un poco perezosos y simplemente actualizar todo lo que necesita ser actualizado de una sola vez usando el interruptor --all . El comportamiento predeterminado del comando de actualización es actualizar hasta la última versión disponible, que incluye actualizaciones de versiones principales. Pero al usar el interruptor --minor podemos ser un poco más cuidadosos y solo actualizar para versiones menores. Por ejemplo, podemos decirle que actualice de 1.2.3 a 1.3.0, pero no a 2.0.0. Incluso podemos ser extremadamente cuidadosos y usar el --patch para limitar las actualizaciones a solo parches, es decir, de 1.2.3 a 1.2.5 pero nunca a 1.3.0.

# Actualice cuidadosamente los complementos uno por uno
actualización del complemento wp wp-offload-media
actualización del complemento wp hola-muñeca

# El enfoque del vaquero
actualización del complemento wp --todo

# Un poco más sensato
actualización del complemento wp --todo --menor

# Muy defensivo
actualización del complemento wp --todos --parche

Nota: Los interruptores --minor y --patch asumen que el complemento está utilizando el control de versiones semántico. No todos los complementos hacen esto, por lo que deberá buscar los complementos que está utilizando para no recibir sorpresas desagradables. La opción --dry-run le permite verificar y asegurarse de que sus comandos sean correctos:

# Pruebe la actualización de un solo complemento para solo parches
actualización del complemento wp hello-dolly --patch --dry-run

El parámetro --exclude=<plugin name> se usa para indicar qué complementos deben excluirse de la actualización. Incluya los nombres de los complementos como una lista separada por comas, y WP-CLI actualizará todos los demás complementos y los dejará solos:

actualización del complemento wp --all --exclude=hello-dolly
Habilitando el modo de mantenimiento...
Descargando actualización desde https://deliciousbrains.com/my-account/download/7512/?version=2.6.2...
Desempaquetando la actualización...
Instalando la última versión...
Eliminando la versión anterior del complemento...
Complemento actualizado con éxito.
Deshabilitando el modo de mantenimiento...
+----------------------------------------+-------------+-------- -----+---------+
| nombre | versión_antigua | nueva_versión | estado |
+----------------------------------------+-------------+-------- -----+---------+
| amazon-s3-y-cloudfront | 2.6.1 | 2.6.2 | Actualizado |
+----------------------------------------+-------------+-------- -----+---------+

Forzar la reinstalación del complemento

La mayoría de los complementos premium vienen con su propio verificador de actualizaciones incorporado que también funciona muy bien con WP-CLI. En mi experiencia, cualquier complemento que se pueda actualizar con un solo clic a través de las páginas de administración de WordPress también se puede actualizar usando WP-CLI. Pero en algunos casos, las actualizaciones se proporcionan a través de una nueva versión del archivo zip que debe colocar en el lugar correcto en su servidor. Puede aplicar este tipo de actualizaciones forzando una reinstalación del complemento usando el interruptor --force :

# Forzar la reinstalación de un complemento
instalación del complemento wp ~/Descargas/mi-complemento-personalizado-v2.zip --force

Habilitación de actualizaciones automáticas

Desde la versión 5.5, WordPress puede actualizar complementos automáticamente. Las actualizaciones automáticas deben estar habilitadas para cada complemento individual. WP-CLI no ofrece ningún manejo masivo para actualizaciones automáticas. Tiene que hacerse individualmente por complemento usando el subcomando auto-updates . Puedes ver cómo funciona con los siguientes comandos:

# Comprobar si las actualizaciones automáticas están habilitadas para un complemento
wp plugin auto-actualiza el estado hello-dolly

# Habilitar actualizaciones automáticas 
las actualizaciones automáticas del complemento wp habilitan hello-dolly

# Deshabilitarlo de nuevo
las actualizaciones automáticas del complemento wp deshabilitan hello-dolly

Desactivación y eliminación de complementos

La instalación, activación y actualización de complementos se encuentran entre las tareas más comunes, pero hay otros trabajos de administración de complementos que WP-CLI puede manejar por nosotros.

Si alguna vez ha intentado descubrir qué está causando un problema en su sitio web de WordPress, probablemente le hayan recomendado que desactive todos los complementos como uno de los primeros pasos. Es posible hacer esto con el manejo masivo en un navegador web, pero siempre me pone nervioso. Prefiero hacerlo a través de la línea de comando usando el --all .

# Desactivar todos los complementos a la vez
complemento wp desactivar --todos

# Y reactivarlos de nuevo
complemento wp activar --todo

La eliminación completa de un complemento también se realiza fácilmente con WP-CLI. Una diferencia entre hacer esto a través de la línea de comandos y el navegador es que WP-CLI le permitirá eliminar un complemento sin ejecutar primero los ganchos de desactivación. Si alguna vez instaló un complemento que bloquea WordPress durante la desactivación, sabe por qué esto puede ser tan útil:

# Desactivar y desinstalar 
complemento wp desactivar hello-dolly --desinstalar

# Eliminar un complemento sin darle la oportunidad de desactivarlo
complemento wp eliminar hola-muñeca

También existe el subcomando de toggle que está relacionado con la activación y desactivación de complementos. Cambiará o alternará el estado de activación para que cambie al opuesto del estado actual. Puede agregar --network para activar o desactivar el complemento para una red multisitio completa.

Sumas de comprobación de complementos

WP-CLI tiene la capacidad de comparar las sumas de verificación de sus complementos instalados con las sumas de verificación para el mismo complemento y versión en el directorio de complementos de WordPress. Esta es una forma muy eficiente de determinar si los archivos del complemento en su instalación de WordPress han sido manipulados. Si lo han hecho, es una fuerte indicación de que ha sido pirateado.

Las sumas de verificación son algoritmos informáticos especiales que pueden tomar una entrada de cualquier tipo y tamaño y convertirla en una cadena corta. Esta cadena suele tener entre 20 y 40 caracteres, lo que la hace adecuada para almacenarla en una base de datos. Esta cadena resultante se denomina hash, firma o, por razones históricas, suma de comprobación.

Lo que hace que estos algoritmos sean únicos es que si cambia un solo carácter en la entrada, la salida será completamente diferente. Alimente todos los archivos de un complemento en el algoritmo de suma de verificación uno por uno, y terminará con una pequeña firma, o suma de verificación, que representa todo el complemento.

Cada vez que se publica una nueva versión de un complemento en el Directorio de complementos de WordPress, la suma de verificación se calcula y se guarda para esa versión específica. Unos meses más tarde, cuando desee verificar que no ha sido pirateado, puede pedirle a WP-CLI que calcule la suma de verificación de sus complementos y compararlos con las sumas de verificación originales que mantiene WordPress. Si hay archivos agregados, modificados o faltantes de su parte, la suma de verificación del complemento será diferente de la original y WP-CLI hará algo de ruido al respecto.

El subcomando que maneja esta magia de verificación de hash se llama verify-checksums y es esencialmente lo mismo que preguntar "¿mis complementos no han cambiado desde que los obtuve del directorio de complementos de WordPress?"

# Buscar un solo complemento
wp plugin verificar sumas de verificación hola-muñeca
Éxito: 1 de 1 complementos verificados

# Verifique todos los complementos que provienen del repositorio
Complemento wp verificar sumas de verificación --todos

Esto solo funciona para los complementos que se instalaron desde el Directorio oficial de complementos de WordPress, por lo que este comando no verificará sus complementos premium. El subcomando verify-checksums también existe para wp core , pero no se puede usar para verificar temas de WordPress.

Comandos para secuencias de comandos

Hasta ahora, los comandos que hemos cubierto son útiles para cualquier persona que necesite administrar complementos de WordPress. El último conjunto de subcomandos del wp plugin que voy a cubrir es principalmente de interés para los desarrolladores de WordPress, ya que en su mayoría están destinados para su uso en scripts de Bash.

Primero necesitamos hablar un poco sobre los códigos de salida de Unix. En un sistema Unix, todos los programas que salen de la ejecución regresan con un código de salida. La interpretación estándar es que el código de salida 0 significa que el programa terminó bien, mientras que un código de salida distinto de cero indica que ocurrió un error.

Los códigos de error a menudo se usan en scripts de shell para usar en declaraciones if/else y otras formas de bifurcación. No vemos el código de salida cuando ejecutamos un comando normalmente desde el símbolo del sistema, pero siempre podemos encontrarlo usando $? :

# Ejecute algo que funcione y obtenga el código de salida
fecha
eco $?
0

# Ejecutar algo que falla
ls /carpeta inexistente
ls: /idongfdg: No existe tal archivo o directorio
eco $?
1

En WP-CLI, tenemos un montón de comandos que en su mayoría están destinados a verificar algo y devolver un código de salida útil. El comando wp plugin tiene dos de estos subcomandos, is-installed y is-active , que nos permiten verificar si un determinado complemento está instalado y activado:

# Comprobar si hello-dolly está instalado (lo está)
el complemento wp está instalado hello-dolly
eco $?
0

# Eliminar hello-dolly y comprobar de nuevo
complemento wp eliminar hola-muñeca
el complemento wp está instalado hello-dolly
eco $?
1

# Comprobar si woocommerce está activado
el complemento wp está activo en woocommerce
eco $?
0

# Desactivar woocommerce
complemento wp desactivar woocommerce
el complemento wp está activo en woocommerce
eco $?
1

Usando los comandos anteriores, es posible escribir scripts de Bash que hacen cosas diferentes dependiendo de si un determinado complemento está instalado/activado o no.

El último subcomando que sospecho que es principalmente para fines de secuencias de comandos es path . Este comando simplemente devuelve la ruta al archivo PHP principal de un complemento y, en consecuencia, también a la carpeta del complemento. Podemos combinar esto con otros trucos de Bash, por ejemplo así:

# Mostrar todos los archivos en la carpeta del complemento de woocommerce
ls -al $(dirname $(ruta del complemento wp woocommerce))

Esto no es muy útil en el trabajo diario de la línea de comandos, pero ciertamente es útil al escribir scripts y necesita obtener la ruta para un complemento.

Conclusión

Como puede ver, administrar los complementos de WordPress a través de la línea de comandos aumenta su velocidad y simplifica muchas tareas comunes. He cubierto las tareas más comunes cuando se trata de administrar sus complementos, pero lo animo a explorar más por su cuenta. Pronto descubrirá que el poder de WP-CLI se extiende mucho más allá de los complementos, lo que le permite hacer prácticamente cualquier cosa que pueda hacer en el administrador de WordPress, pero mucho más rápido.

¿Tiene algún buen ejemplo de cómo está usando el comando wp plugin ? Por favor, hágamelo saber en los comentarios.