Usando wp-cli para diversión y beneficio

Vea cómo puede realizar tareas comunes de WordPress más rápido o incluso automatizarlas usando el poder de bash.


Que es wp-cli?

wp-cli es una herramienta para controlar WordPress a través de una ventana de consola.

Cuando la interfaz de administración de WordPress es tan hermosa y fácil de usar, la pregunta natural es: ¿por qué usar una interfaz de línea de comandos??

Hay dos razones principales:

  • El teclado es más rápido que el mouse. - Para usuarios avanzados, escribir un comando puede ser órdenes de magnitud más rápido que presionar un botón en un navegador web.
  • Scripting - Puedes poner varios comandos en un archivo de texto y hacer que se ejecute automáticamente.

En este tutorial voy a darte una idea de para qué sirve wp-cli.


Instalando wp-cli

Antes de usarlo, necesitarás algunas cosas:

  1. Cáscara tipo UNIX - Si está en una Mac o en Linux, puede ejecutar wp-cli en su máquina local. Si está en Windows, puede iniciar sesión en su servidor Linux a través de Putty e instalar wp-cli allí.

  2. PHP 5.3+ y la utilidad php-cli - Puedes ver si tienes estos ejecutando el siguiente comando:

    php -v
  3. Git - Esto es lo que usaremos para instalar y actualizar wp-cli.

El proyecto wp-cli aún está en su infancia, por lo que la mejor manera de estar al tanto de las versiones recientes 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 donde se instalará wp-cli. Siéntete libre de cambiarlo a lo que quieras.

Eso es. Ahora el wp El comando debe estar disponible:

 cd / var / www / public_html / wordpress wp

En multisite

Si desea utilizar wp-cli en una instalación multisitio, deberá decidir en qué blog desea operar:

 wp --blog = myblog.mynetwork.com

Para evitar tener que pasar el --Blog parámetro para cada comando, puede almacenarlo en un archivo con nombre especial:

 echo 'myblog.mynetwork.com'> wp-cli-blog

wp-cli leerá ese archivo si no hay --Blog parámetro.


Núcleo de manipulación

Primero, veamos con qué versión de WordPress estamos tratando:

 Versión del núcleo wp --extra

Para realizar una actualización, solo necesitas escribir:

 actualización del núcleo wp

Manejo de complementos

Veamos que complementos hemos instalado:

 estado del plugin wp

Eh, parece que hay una actualización disponible para Akismet. Vamos a instalarlo:

 actualización de plugin wp akismet

Ahora instalemos y activemos un plugin de wordpress.org:

 wp plugin install google-sitemap-generator --activate

Además, puedes instalar la versión de desarrollo de un complemento:

 wp plugin install google-sitemap-generator --activate --dev

Ah, y mira, hay un nuevo comando disponible ahora:

 wp google-sitemap

Podemos cambiar rápidamente un complemento de activo a inactivo y viceversa:

 wp plugin toggle google-sitemap-generator

Esta es una buena manera de depurar ganchos de activación.

Del mismo modo, puede ejecutar el procedimiento de desinstalación de un complemento sin eliminar los archivos del complemento:

 wp plugin desinstalar google-sitemap-generator

Y, por supuesto, también puedes eliminar el complemento:

 plugin wp eliminar google-sitemap-generator

Temas de manejo

También tenemos algunos comandos para trabajar con temas:

 estado del tema wp

A diferencia de los complementos, solo puede tener un solo tema ejecutándose a la vez, por lo que la activación de un tema automáticamente "desactivará" el anterior:

 wp tema activar veinte

Y aquí hay un pequeño truco para ir al directorio de un tema en particular:

 cd $ (tema wp ruta veinteeleven)

Generando datos

Si estás escribiendo un tema y quieres darle estilo a la paginación, necesitarás muchas publicaciones. Aquí está la manera más rápida de conseguirlos:

 wp generar publicaciones --count = 1000

Si desea diseñar una lista de usuarios, también puede generar algunos de ellos:

 wp generar usuarios --role = autor

También puedes crear usuarios individuales:

 wp user create stan [email protected]

Creación de archivos de exportación

Es posible que desee exportar periódicamente su contenido a un archivo WXR.

 wp export --path =. / --user = admin

Puede pasar parámetros adicionales para limitar el contenido que se exporta, como --categoría, --fecha de inicio etc.


Cambio de opciones sobre la marcha

Hay comandos sencillos para CRUD Operaciones sobre opciones:

 opción wp obtener permalink_structure opción wp agregar foo bar opción wp eliminar foo

No desea hacer esto de forma regular, ya que la mayoría de las opciones están restringidas a ciertos valores. Pero puede ser útil en scripts.


Operaciones de base de datos

Si desea hacer una copia de seguridad de la base de datos, simplemente escriba:

 wp db dump

O quizás necesite hacer una consulta rápida para encontrar cuándo se publicó la última publicación:

 wp db query "SELECT MAX (post_date) from wp_posts DONDE post_type = 'post' Y post_status = 'publish'"

Abrir una sesión interactiva de MySQL para hacer algunos diagnósticos es igual de fácil:

 wp db cli

Ejecución de código arbitrario

A veces, la única forma de decirle a wp-cli lo que quiere es describiéndolo en código PHP:

 wp eval-file do-my-laundry.php

Con el comando anterior, wp-cli primero cargará WordPress y luego cargará y ejecutará su archivo PHP.

Esto es útil para implementar scripts o para otras acciones complejas que no se pueden lograr con los comandos incorporados.

También puede pasar el código PHP en línea:

 wp eval 'echo WP_CONTENT_DIR;'

Creando tus propios comandos

Lo creas o no, wp-cli está escrito principalmente en PHP. Cada comando es una clase, y cada método representa un subcomando.

Lo bueno es que puedes crear tu propia clase, ponerlo en un complemento y wp-cli lo reconocerá automáticamente como uno de los suyos. Un tutorial detallado para crear comandos está disponible en la wiki del proyecto.


Conclusión

Espero haberte convencido de que al menos pruebes wp-cli. Si ha encontrado un error o si tiene una solicitud de función, considere abrir un problema.

¿Tienes un caso de uso interesante para wp-cli? Por favor compártelo en los comentarios a continuación..