Spanish (Español) translation by Eva Collados Pascual (you can also view the original English article)
Observa cómo realizar tareas habituales en WordPress más rápido o incluso automatizarlas usando la potencia de bash.
¿Qué es wp-cli?
wp-cli es una herramienta para controlar WordPress a través de la ventana de la consola.
Siendo la interfaz de administración de WordPress es tan atractiva y fácil de usar, la pregunta lógica es: ¿por qué iba a usar la interfaz de la línea de comandos?
Existen dos razones principales:
- El teclado es más rápido que el ratón - Para los usuarios aventajados, teclear un comando puede ser muchísimo más rápido que pulsar un botón en un navegador.
- Secuencias de comandos - Podrás poner varios comandos en un archivo de texto y ejecutarlo automáticamente.
En este tutorial voy a darte una idea de para qué es ideal el uso de wp-cli.
Instalar wp-cli
Antes de usarlo, tendrás que hacer un par de cosas:
-
Shell como las de UNIX - Si estás en un Mac o en Linux, puedes ejecutar wp-cli en tu ordenador local. Si estás en Windows, puedes iniciar sesión en tu servidor Linux a través de Putty e instalar allí wp-cli.
-
PHP 5.3+ y la utilidad php-cli - Puedes comprobar si los tienes ejecutando el siguiente comando:
php -v
-
Git - Esto es lo que usaremos para instalar y actualizar wp-cli.
El proyecto wp-cli está todavía en su infancia, así que la mejor manera de mantenerte siempre en la última versión es clonarlo desde github:
git clone --recurse-submodules git://github.com/andreascreten/wp-cli.git ~/git/wp-cli cd ~/git/wp-cli sudo utils/build-dev
~/git/wp-cli
es el directorio en donde wp-cli será instalado. Siéntete libre de cambiarlo a cualquier cosa que desees.
Eso es. Ahora el comando wp
debería estar disponible:
cd /var/www/public_html/wordpress wp



En un Multisitio
Si quieres usar wp-cli en una instalación multisitio, tendrás que decidir desde qué blog quieres operar:
wp --blog=myblog.mynetwork.com
Para evitar tener que enviar el parámetro --blog
en cada comando, puedes almacenarlo en un archivo con una denominación especial:
echo 'myblog.mynetwork.com' > wp-cli-blog
wp-cli leerá ese archivo en caso de no existir el parámetro --blog
.
Gestionar el Núcleo
Primero, comprobemos con qué versión de WordPress estamos lidiando:
wp core version --extra



Para realizar una actualización, simplemente tenemos que escribir lo siguiente:
wp core update



Manejar los Plugins
Veamos qué plugins tenemos instalados:
wp plugin status



Vaya, parece que hay una actualización disponible para Akismet. Instalémosla:
wp plugin update akismet



Ahora vamos a instalar y activar un plugin desde wordpress.org:
wp plugin install google-sitemap-generator --activate



Además, puedes instalar la versión en desarrollo de un plugin:
wp plugin install google-sitemap-generator --activate --dev
Oh, y mira, existe un nuevo comando disponible ahora:
wp google-sitemap



Podemos activar o desactivar rápidamente un plugin:
wp plugin toggle google-sitemap-generator



Este es un método genial para depurar hooks de activación.
De igual forma, puedes ejecutar el proceso de desinstalación de un plugin sin eliminar los archivos del mismo:
wp plugin uninstall google-sitemap-generator
Y, por supuesto, puedes eliminar también completamente el plugin:
wp plugin delete google-sitemap-generator
Gestionar los Temas
Disponemos de varios comandos para trabajar también con los temas:
wp theme status



A diferencia de los plugins, sólo puedes tener un tema activo al mismo tiempo, así que al activar un tema, automáticamente "desactivarás" el que estaba siendo usado:
wp theme activate twentyten
Y aquí tienes un pequeño truco para acceder al directorio de un tema en particular:
cd $(wp theme path twentyeleven)
Generarción de Datos
Si estás escribiendo un tema y quieres aplicar estilo a la paginación, vas a necesitar muchas entradas. Aquí tienes la forma más rápida de obtenerlos:
wp generate posts --count=1000



Si quieres aplicar estilo a una lista de usuarios, podrías generar también algunos de ellos:
wp generate users --role=author



También puedes crear usuarios individuales:
wp user create stan stan@company.com



Crear Archivos Exportables
Podrías querer exportar periódicamente tu contenido a un archivo WXR.
wp export --path=./ --user=admin



Puedes enviar parámetros adicionales para limitar el contenido a exportar, por ejemplo --category
, --start_date
, etc.
Cambiar las Opciones sobre la Marcha
Existen comandos directos para operaciones CRUD sobre las opciones:
wp option get permalink_structure wp option add foo bar wp option delete foo
No querrás hacer esto de forma habitual, ya que muchas opciones están limitadas por ciertos valores. Pero podría ser útil con los scripts.
Operaciones en la Base de Datos
Si quieres hacer una copia de la base de datos, simplemente escribe:
wp db dump



O quizá necesitas hacer una rápida consulta para encontrar cuando se publicó la última entrada:
wp db query "SELECT MAX(post_date) from wp_posts WHERE post_type = 'post' AND post_status = 'publish'"
Abrir una sesión MySQL interactiva para hacer un diagnóstico es tan fácil como esto:
wp db cli
Ejecutar Código Arbitrario
En ocasiones, la única forma de indicarle a wp-cli lo que deseas es describiéndolo mediante código PHP:
wp eval-file do-my-laundry.php
Con el comando de arriba, wp-cli cargará primero WordPress y después ejecutará tu archivo PHP.
Esto es útil para implementar scripts o para otras acciones complejas que no pueden lograrse utilizando comandos incorporados.
También puede pasar código PHP en línea:
wp eval 'echo WP_CONTENT_DIR;'
Crear Tus Propios Comandos
Me creas o no, wp-cli esta en su mayor parte escrito en PHP. Cada comando es una clase, en la que cada método está representando un subcomando.
Lo mejor de todo es que tú puedes crear tu propia clase, colócala en un plugin y wp-cli la reconocerá automáticamente como propia. Existe un tutorial detallado sobre la creación de comandos disponible en el proyecto wiki.
Conclusión
Espero haberte convencido para que al menos concedas una oportunidad a wp-cli. Si encuentras un error o si quieres solicitar una característica, puedes abrir un tema.
¿Tienes un caso de estudio sobre el uso de wp-cli? Por favor coméntalo aquí abajo.