WP CLI
Maneja tu WordPress like a 'pro'

Fernando García Rebolledo.

@fgrwebes
Fernando Garcia Rebolledo

Fernando García Rebolledo

Desarrollador WordPress

logo F.GR
Fernando Garcia Rebolledo

Fernando García Rebolledo

Desarrollador WordPress

Oh!Yeah Dev
Fernando Garcia Rebolledo

Fernando García Rebolledo

Y últimamente...

Podcaster

  • logo Genesis Total
  • logo Genesis Total

WP-CLI
Administra WordPress desde línea de comandos

Twitter

$ echo LA TERMINAL MOLA

Cuando trabajas con línea de comandos...

Instalar WP-CLI

              curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar
              php wp-cli.phar --info
              chmod +x wp-cli.phar
              sudo mv wp-cli.phar /usr/local/bin/wp
              wp --info
            

https://make.wordpress.org/cli/handbook/installing/

COMANDOS WP-CLI

Estructura comandos

wp core

  • Descargar WordPress

    wp core download
  • Instalar WordPress

    wp core install
  • Instalar multisite

    wp core multisite-install
  • Actualizar WordPress

    wp core update
  • Comprobar actualizaciones

    wp core check-update
  • Convertir en multisite

    wp core multisite-convert

wp plugin

  • Instalar un plugin

    wp plugin install
  • Listar plugins instalados

    wp plugin list
  • Activar plugin*

    wp plugin activate
  • Actualizar Plugin

    wp plugin update
  • Desinstalar Plugin

    wp plugin uninstall
  • Buscar en repositorio

    wp plugin search

wp db

  • Crear Base de Datos

    wp db create
  • Exportar Base de Datos

    wp db export
  • Ejecutar SQL Query

    wp db query
  • Optimizar Base de Datos

    wp db optimize
  • Borrar y Crear Base de Datos

    wp db reset
  • Buscar y remplazar**

    wp search-replace

Instalar paquete
wp package install [...]

              $ wp package install markri/wp-sec

              Installing package markri/wp-sec (dev-master)
              Updating /home/wpcli/.wp-cli/packages/composer.json to require the package...
              Using Composer to install the package...
              ---
              Loading composer repositories with package information
              Updating dependencies
              Resolving dependencies through SAT
              Dependency resolution completed in 0.152 seconds
              Analyzed 5718 packages to resolve dependencies
              Analyzed 372543 rules to resolve dependencies
              Package operations: 1 install, 0 updates, 0 removals
              Installs: markri/wp-sec:dev-master c4a1817
              - Installing markri/wp-sec (dev-master c4a1817)
              Writing lock file
              Generating autoload files
              ---
              Success: Package installed.
            

algunos ejemplos

  • wp-sec

    Chequear vulnerabilidades
  • wp-cli-login-command

    Acceso temporal
  • wp-cli-rename-db-prefix

    Renombrar prefijo de las tablas
  • wp-cli-size

    Ver el tamaño de las tablas y de la base de datos
  • wp-cli-template

    Lista las plantillas de página utilizadas
  • query-debug

    Información sobre las consultas a la base de datos - WP_Query

MIGRACIÓN CON WP-CLI

Sitio origen

              #Backup del wp-content
              $ tar -czvf backup.tar wp-content
              #Backup de la BD
              $ wp db export BD-local.sql
            

Sitio destino

              #Descargar e instalar WordPress
              $ wp core download --locale=es_ES
              #Crear el wp-config.php
              $ wp config create --dbname=ejemplo --dbuser=root --dbpass=root --dbprefix=wcb_
              #Crear Base de Datos
              $ wp db create
              #Instalar WordPress
              $ wp core install --url=http://wcbilbao.local --admin_user=fgr --admin_password=fgr [email protected] --title="WordCamp Bilbao 2018"
            

Sitio destino

              #Renombrar wp-content
              $ mv wp-content _wp-content
              #Descomprimir wp-content original
              $ tar -xvf backup.tar
              #Importar Base de Datos
              $ wp db import BD-local.sql
              #Reemplazar URL
              $ wp search-replace 'http://wpcli.local' 'http://wcbilbao.local'
              #enlaces permanentes
              $ wp rewrite structure '/%postname%/'
              $ wp rewrite flush
              #Cache 
              $ wp cache flush
              #Borrar transcients
              $ wp transient delete --all
              #regenerar archivos de medios
              $ wp media regenerate --yes
            

PERO...
¿POR QUÉ NO AUTOMATIZARLO Y SER UN AUTÉNTICO PRO?

exportar.sh

              #Backup del wp-content
              tar -czvf backup.tar wp-content
              #Backup de la BD
              wp db export BD-local.sql
            

https://github.com/fgrweb/talks/blob/master/WordCampBilbao2018/sh/exportar.sh

importar.sh

              #Descargar e instalar WordPress
              wp core download --locale=es_ES
              #Crear el wp-config.php
              wp config create --dbname=ejemplo --dbuser=root --dbpass=root --dbprefix=wcb_
              #Crear Base de Datos
              wp db create
              #Instalar WordPress
              wp core install --url=http://wcbilbao.local --admin_user=fgr --admin_password=fgr [email protected] --title="WordCamp Bilbao 2018"
              #Renombrar wp-content
              mv wp-content _wp-content
              #Descomprimir wp-content original
              tar -xvf backup.tar
              #Importar Base de Datos
              wp db import BD-local.sql
              #Reemplazar URL
              wp search-replace 'http://wpcli.local' 'http://wcbilbao.local'
              #enlaces permanentes
              wp rewrite structure '/%postname%/'
              wp rewrite flush
              #Cache 
              wp cache flush
              #Borrar transcients
              wp transient delete
              #regenerar archivos de medios
              wp media regenerate --yes
            

https://github.com/fgrweb/talks/blob/master/WordCampBilbao2018/sh/importar.sh

😎

¡Gracias!

@fgrwebes