3. ¿De que vamos a hablar hoy?
● Linea de comandos
● ¿Como se ejecuta un comando?
– nombre_del_comando parametro --clave=valor
● Ejemplos: ls, tail, curl… (en windows: dir...)
● Cada comando tiene un “manual”
4. ¿Que es WordPress cli?
● Es un comando ;)
● Permite a los usuarios gestionar WP
● Ejecutar “muchas” de las tareas que se hacen
desde la web.
5. ¿Que podemos hacer desde wp-cli?
● Segun internet: instalar plugins, activarlos y
desactivarlos
● Instalar WordPress
● Publicar post, editar, crear
● Copias de la bbdd
● Documentación de wp-cli: http://wp-
cli.org/commands
6. ¿Quien da soporte a wp-cli?
● Empresas que dan soporte a wp-cli (99%
americanas):
– 1&1
– GoDaddy
– HostGator
– ...
https://make.wordpress.org/cli/handbook/hosting-companies/
7. Instalando wp-cli
● Opciones:
– wp-cli.phar (es un zip de php)
https://raw.github.com/wp-cli/builds/gh-
pages/phar/wp-cli.phar
– Ejecutamos el .phar sobre php (ejecutamos un
comando sobre otro comando)
8.
9. Instalando wp-cli
● Descargamos wp-cli.phar (vamos a perderle el
miedo a la linea de comandos):
– curl -O https://raw.github.com/wp-cli...
● ¿Por que digo que es un comando sobre otro
comando?
– php wp-cli.phar --info
10. Instalando wp-cli II
Usuarios avanzados de Linux:
● Descargamos el archivo wp-cli.phar
● Cambiamos permisos y movemos a bin para
que se pueda ejecutar globalmente
– chmod +x wp-cli.phar
– sudo mv wp-cli.phar /usr/local/bin/wp
– wp --info
11. Instalando wp-cli III
Para los usuarios de Windows:
● Requisitos:
– Hay que tener instalado el interprete de php
● Descargamos el archivo desde un navegador
● Ejecutamos
– php wp-cli.phar
12. Instalando wp-cli IV
Como proyecto composer:
● Descargando el proyecto:
– composer create-project wp-cli/wp-cli –prefer-
source
● Ejecutables:
– wp-cli/bin/wp.bat
– wp-cli/bin/wp
15. Comandos básicos
● Crear una BBDD (antes crear el wp-config.php):
– wp db create
● Instalar WP:
– wp core install --url={YOUR DOMAIN NAME}
--title={THE TITLE OF YOUR SITE}
--admin_user={YOUR USER NAME}
--admin_password={YOUR PASSWORD}
--admin_email={YOUR EMAIL}
16. Comandos básicos
● Cambiar el languaje:
– wp core language install es_ES –activate
● Listar post:
– wp post list --post_type=post --format=json –fields
http://wp-cli.org/commands/post/list/
● Editar un post:
– wp post edit <id>
(Editar solo el contenido).
17. Comandos básicos
● Reemplazar información en la BBDD:
– wp search-replace 'http://a.com' 'http://a.dev'
wp_options –dry-run (solo probar el comando)
19. Comandos básicos
● Generar contenido dinamico:
– wp post generate –count=100 –post_type=page –
post_date=2017-03-21
● O con contenido:
– curl http://loripsum.net/api/5 | wp post generate –
post_content --count=10
20. Parametros
● Parametros:
– de posición
– clave=valor
Ejemplo: http://wp-cli.org/commands/search-replace/
● Modificacion de la salida del comando:
– wp post list --post_type='page' –format=ids
– wp post delete $(wp post list --post_type='page' –
format=ids)
21.
22. Automatizando tareas
● Crear un archivo bat o sh:
#!/bin/bash
echo "instalando nuestro wp"
wp core download –parametro=...
wp core config –parametro=...
wp core install –parametro=...
23. Paquetes
● Son los plugins de WP
● Con el tiempo son incorporados al core de wp-cli
● Otros están bastante desactualizados
– Listado principal (paquetes de wp-cli):
http://wp-cli.org/package-index/
– Otro (integran wp-cli):
https://make.wordpress.org/cli/handbook/tools/
24.
25. Paquetes
● Otros: son paquetes de wp-cli o pueden venir en
forma de plugin de wp
Ejemplo:
https://github.com/hoppinger/advanced-custom-field
s-wpcli
– wp plugin activate advanced-custom-fields-
wp-cli
– wp acf
26. Paquetes
● Instalar un paquete:
– wp package install wp-cli/doctor-command
● Ejecutar:
– wp doctor
(Recordar que todo comando tiene su
“manual”)
27. ¿Desde donde controlamos nuestro
WP?
● Local
● ssh
– wp post list --ssh=root@10.0.0.1 --path=/var/www
(Antes era un paquete y ahora esta en el core de
wp-cli: https://github.com/xwp/wp-cli-ssh)
● Http (hay que instalar un paquete)
– wp post list --http='http://mi_empresa.es'
29. Archivos de configuración
● Se define un archivo wp-cli.yml
# Global parameter defaults
path: /var/www
debug: true
https://make.wordpress.org/cli/handbook/config/
31. wp-cli por Http
● RESTfull en 30seg
– Url amigable:
http://api.example.com/verduras
http://api.example.com/verdura/boniato
http://api.example.com/post
http://api.example.com/post/1
32. wp-cli por Http
● json
Es mainstream
● Ejemplo: ['post':{'title':'Mi primer post!', 'date':
'2017-03-22', 'clave': 'valor}]
● Documentación: http://www.json.org/json-es.html
● ¿Que tiene que ver con controlar WP por Http?
33. RESTfull wp-cli
● Es un paquete para conectar wp-cli con un servidor remoto
por Http.
● Instalamos el paquete:
– wp package install wp-cli/restful
● Instalamos el plugin en nuestro WP (incluido desde la
versión 4.7)
● Leemos la documentación: https://github.com/wp-cli/restful
● Ejecutamos:
– wp rest post list | edit | create | delete | get | update
34. Crear tus propios paquetes:
● Instala un generador de paquetes:
– wp package install wp-cli/scaffold-package-
command
● Ejecuta:
– wp scaffold package-demo /ruta
● Crea tu nuevo comando:
35. <?php
● /**
● * Implements example command.
●
*/
● class Example_Command extends WP_CLI_Command {
●
● function hello( $args, $assoc_args ) {
● list( $name ) = $args;
●
● // Print the message with type
● $type = $assoc_args['type'];
● WP_CLI::$type( "Hello, $name!" );
● }
● }
●
● WP_CLI::add_command( 'comando', 'Example_Command' );
36. Crear tus propios paquetes:
● Recomendaciones:
– Usa la api de wp-cli antes que la de WP.
http://wp-cli.org/docs/internal-api/
– Sigue sus estandares:
https://make.wordpress.org/cli/handbook/document
ation-standards/
37. Wrappers de wp-cli
● Node
● Gema de Ruby
● Implementacion para servidores
● Puppet para ser instalado en vagrant
● Para usar con chef
● https://make.wordpress.org/cli/handbook/tools/#wra
ppers