WP-CLI The command line interface for WordPress

WP-CLI es la interfaz de línea de comandos para WordPress. Puedes actualizar plugins, configurar instalaciones multisitio y mucho más, sin usar un navegador web.

El mantenimiento continuo es posible gracias a:

La versión estable actual es la 2.9.0. Para estar al día, sigue @wpcli en Twitter o regístrate para recibir actualizaciones por correo electrónico. Consulta la hoja de ruta para una visión general de lo que está planeado para las próximas versiones.

Testing Average time to resolve an issue Percentage of issues still open

Enlaces rápidos: Uso | Instalación | Soporte | Extender | Contribuir | Créditos

Uso

WP-CLI proporciona una interfaz de línea de comandos para muchas acciones que puedes realizar en el escritorio de WordPress. Por ejemplo, wp plugin install --activate (doc) te permite instalar y activar un plugin de WordPress:

$ wp plugin install user-switching --activate
Installing User Switching (1.0.9)
Downloading install package from https://downloads.wordpress.org/plugin/user-switching.1.0.9.zip...
Unpacking the package...
Installing the plugin...
Plugin installed successfully.
Activating 'user-switching'...
Plugin 'user-switching' activated.
Success: Installed 1 of 1 plugins.

WP-CLI también incluye comandos para muchas cosas que no puedes hacer en el escritorio de WordPress. Por ejemplo, wp transient delete --all (doc) te permite eliminar uno o todos los datos transitorios:

$ wp transient delete --all
Success: 34 transients deleted from the database.

Para una introducción más completa para usar WP-CLI, lee la guía de inicio rápido. O bien, ponte al día con los shell friends para aprender acerca de las utilidades de línea de comandos.

¿Ya te sientes cómodo con lo básico? Ve a la lista completa de comandos para obtener información detallada sobre la gestión de temas y plugins, importación y exportación de datos, realización de operaciones de búsqueda y reemplazo de bases de datos, y más.

Instalación

La descarga del archivo Phar es nuestro método de instalación recomendado para la mayoría de usuarios. Si lo necesitas, consulta también nuestra documentación acerca de métodos de instalación alternativos (Composer, Homebrew, Docker).

Antes de instalar WP-CLI, asegúrate de que tu entorno cumple con los requisitos mínimos:

Una vez que hayas verificado los requisitos, descarga el archivo wp-cli.phar usando wget o curl :

curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar

A continuación, comprueba el archivo Phar para verificar que está funcionando:

php wp-cli.phar --info

Para usar WP-CLI desde la línea de comandos tecleando wp, haz que el archivo sea ejecutable y muévelo a algún lugar de tu PATH. Por ejemplo:

chmod +x wp-cli.phar
sudo mv wp-cli.phar /usr/local/bin/wp

Si WP-CLI se instaló correctamente, deberías ver algo como esto cuando ejecutas wp --info:

$ wp --info
OS:     Linux 4.19.128-microsoft-standard #1 SMP Tue Jun 23 12:58:10 UTC 2020 x86_64
Shell:  /usr/bin/zsh
PHP binary:     /usr/bin/php
PHP version:    8.0.5
php.ini used:   /etc/php/8.0/cli/php.ini
MySQL binary:   /usr/bin/mysql
MySQL version:  mysql  Ver 8.0.23-0ubuntu0.20.04.1 for Linux on x86_64 ((Ubuntu))
SQL modes:
WP-CLI root dir:        /home/wp-cli/
WP-CLI vendor dir:      /home/wp-cli/vendor
WP_CLI phar path:
WP-CLI packages dir:    /home/wp-cli/.wp-cli/packages/
WP-CLI global config:
WP-CLI project config:  /home/wp-cli/wp-cli.yml
WP-CLI version: 2.9.0

Actualización

Puedes actualizar WP-CLI con wp cli update (doc), o repitiendo los pasos de instalación.

Si WP-CLI es propiedad de root u otro usuario del sistema, necesitarás ejecutar sudo wp cli update.

¿Quieres vivir la vida al límite? Ejecuta wp cli update --nightly para usar la última compilación nocturna (nightly build) de WP-CLI. Una compilación nocturna es más o menos lo suficientemente estable como para que puedas utilizarla en tu entorno de desarrollo, y siempre incluye las últimas y mejores características de WP-CLI.

Autocompletar con el tabulador

WP-CLI también viene con un scripts para autocompletar con el tabulador para Bash y ZSH. Tan sólo descarga wp-completion.bash y usa el comando source desde ~/.bash_profile:

source /FULL/PATH/TO/wp-completion.bash

No te olvides de ejecutar source ~/.bash_profile después.

Si usa la shell zsh, es posible que debas cargar e iniciar bashcompinit antes de usar el comando source. Pon lo siguiente en tu .zshrc:

autoload bashcompinit
bashcompinit
source /RUTA/COMPLETA/HASTA/wp-completion.bash

Soporte

Tanto los que mantienen WP-CLI como sus colaboradores tienen disponibilidad limitada para responder preguntas generales de soporte. La versión actual de WP-CLI es la única versión oficialmente soportada.

Cuando busques ayuda, primero busca tu pregunta en estos lugares:

Si no encontraste una respuesta en uno de los lugares anteriores, puedes:

Los issues de GitHub están destinados al seguimiento de mejoras y errores de los comandos existentes, no para soporte general. Antes de enviar un informe de errores, por favor, revisa nuestras mejores prácticas para ayudar a garantizar que tu issue se resuelva de manera oportuna.

Por favor, no hagas preguntas de soporte en Twitter. Twitter no es un lugar aceptable para el soporte porque: 1) es difícil mantener conversaciones con menos de 280 caracteres, y 2) Twitter no es un lugar donde alguien con tu misma pregunta pueda buscar una respuesta en una conversación previa.

Recuerda, libre != gratis; la licencia open source te da la libertad de usar y modificar, pero no a expensas del tiempo de otras personas. Por favor, se respetuoso y establece tus expectativas en consecuencia.

Extender

Un comando es la unidad atómica de la funcionalidad de WP-CLI. wp plugin install (doc) es un comando. wp plugin activate (doc) es otro.

WP-CLI permite registrar cualquier clase, función o closure invocable como un comando. Este lee los detalles de uso del PHPdoc de la devolución de llamada. WP_CLI::add_command() (doc) se utiliza tanto para el registro de comandos internos como de terceros.

/**
 * Delete an option from the database.
 *
 * Returns an error if the option didn't exist.
 *
 * ## OPTIONS
 *
 * <key>
 * : Key for the option.
 *
 * ## EXAMPLES
 *
 *     $ wp option delete my_option
 *     Success: Deleted 'my_option' option.
 */
$delete_option_cmd = function( $args ) {
	list( $key ) = $args;

	if ( ! delete_option( $key ) ) {
		WP_CLI::error( "Could not delete '$key' option. Does it exist?" );
	} else {
		WP_CLI::success( "Deleted '$key' option." );
	}
};
WP_CLI::add_command( 'option delete', $delete_option_cmd );

WP-CLI viene con docenas de comandos. Crear un comando personalizado para WP-CLI es más fácil de lo que parece. Lee el libro de recetas de comandos para obtener más información. Explora los documentos de la API interna para descubrir una variedad de funciones útiles que puedes usar en su comando WP-CLI personalizado.

Contribuir

Apreciamos que tomes la iniciativa de contribuir a WP-CLI. Es gracias a ti y la comunidad que lo rodea, que WP-CLI es un gran proyecto.

Contribuir no se limita únicamente al código. Te animamos a contribuir de la forma que mejor se adapte a tus habilidades, escribiendo tutoriales, haciendo una demostraciones en tu meetup local, ayudando a los demás con sus preguntas de soporte, o revisando nuestra documentación.

Lee atentamente nuestras pautas de colaboración en el manual para una introducción completa sobre cómo puedes involucrarte. Seguir estas pautas ayuda a comunicar que respetas el tiempo de otros colaboradores en el proyecto. A su vez, ellos harán todo lo posible para corresponder a ese respeto cuando trabajen contigo, a través de diferentes zonas horarias alrededor del mundo.

Liderazgo

WP-CLI tiene un encargado del mantenimiento del proyecto: schlessera.

En ocasiones, concedemos permisos de escritura a los colaboradores que han demostrado, durante un período de tiempo, que son capaces e invirtieron en avanzar el proyecto.

Lee el documento de gobernanza en el manual para obtener más detalles operativos sobre el proyecto.

Créditos

Además de las bibliotecas definidas en composer.json, hemos utilizado código o ideas de los siguientes proyectos: