Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
ADMINISTRA WORDPRESS
AUTOMÁTICAMENTE CON WP-CLI
WordCamp	
  Málaga	
  2013	
  

Mike	
  Schroder	
  |	
  @GetSource	
  
De...
Mike	
  Schroder,	
  alias	
  DH-­‐Shredder,	
  alias	
  @GetSource	
  
CREDENTIALS	
  

Empleado	
  Feliz	
  de	
  DreamH...
Mike	
  Schroder	
  |	
  @GetSource	
  |	
  #wcuma	
  
HAY DOS GROUPOS DE GENTE

Mike	
  Schroder	
  |	
  @GetSource	
  |	
  #wcuma	
  
LOS QUE UTILIZAN LA LÍNEA DE COMANDOS

Mike	
  Schroder	
  |	
  @GetSource	
  |	
  #wcuma	
  
LOS QUE VAN A UTILZAR
LA LÍNEA DE COMANDOS

Mike	
  Schroder	
  |	
  @GetSource	
  |	
  #wcuma	
  
NO TENGAS MIEDO DE LA CLI
ES	
  TU	
  AMIGO.	
  

Mike	
  Schroder	
  |	
  @GetSource	
  |	
  #wcuma	
  
TE GUSTA LA CLI?
WP-­‐CLI	
  TE	
  MEJORA	
  LA	
  VIDA	
  

Mike	
  Schroder	
  |	
  @GetSource	
  |	
  #wcuma	
  
SUPER-GUAY SOFTWARE LIBRE
PARA MANEJAR WORDPRESS

Mike	
  Schroder	
  |	
  @GetSource	
  |	
  #wcuma	
  
MANEJADO POR CRISTI BURCĂ (SCRIBU)
Y ANDREAS CRETEN

Mike	
  Schroder	
  |	
  @GetSource	
  |	
  #wcuma	
  
UTILIZA WORDPRESS SÍ MISMO
PARA OPERARSE

Mike	
  Schroder	
  |	
  @GetSource	
  |	
  #wcuma	
  
¡AUTOMATIZATE!

Mike	
  Schroder	
  |	
  @GetSource	
  |	
  #wcuma	
  
¿QUE PUEDO HACER?

Mike	
  Schroder	
  |	
  @GetSource	
  |	
  #wcuma	
  
Mike	
  Schroder	
  |	
  @GetSource	
  |	
  #wcuma	
  
EN SERIO.

Mike	
  Schroder	
  |	
  @GetSource	
  |	
  #wcuma	
  
ACTUALIZA WORDPRESS
$ wp core update

Mike	
  Schroder	
  |	
  @GetSource	
  |	
  #wcuma	
  
INSTALLA UN PLUGIN
$ wp plugin install <slug o .zip>

Mike	
  Schroder	
  |	
  @GetSource	
  |	
  #wcuma	
  
ELIGE UN TEMA
$ wp theme activate <slug>

Mike	
  Schroder	
  |	
  @GetSource	
  |	
  #wcuma	
  
GUARDA LA BASE DE DATOS
$ wp db export [ficha]

Mike	
  Schroder	
  |	
  @GetSource	
  |	
  #wcuma	
  
ACTUALIZA LOS PLUGINS
$ wp plugin update-all

Mike	
  Schroder	
  |	
  @GetSource	
  |	
  #wcuma	
  
ACTUALIZA LOS TEMAS
$ wp theme update-all

Mike	
  Schroder	
  |	
  @GetSource	
  |	
  #wcuma	
  
SUSTITUIR TEXTO EN DB
$ wp search-replace <viejo> <nuevo>

Mike	
  Schroder	
  |	
  @GetSource	
  |	
  #wcuma	
  
¿QUÉ ES ÉSTA MÁGIA?

Mike	
  Schroder	
  |	
  @GetSource	
  |	
  #wcuma	
  
Mike	
  Schroder	
  |	
  @GetSource	
  |	
  #wcuma	
  
CONVENCIDO.
¿CÓMO PUEDO OBTENERLO?

Mike	
  Schroder	
  |	
  @GetSource	
  |	
  #wcuma	
  
¿QUÉ REQUIERE PARA USARLO?
-­‐	
  	
  Accesso	
  SSH	
  a	
  tu	
  directorio	
  WordPress	
  
-­‐	
  	
  PHP	
  5.3.2+	
 ...
INSTALA COMO USADOR LOCAL
Instrucciones Completas:
wp-­‐cli.org	
  
	
  

$ curl http://wp-cli.org/installer.sh | bash

Mi...
¡ESPERA; HAY MÁS!

Mike	
  Schroder	
  |	
  @GetSource	
  |	
  #wcuma	
  
¡WP-CLI ES EXTENSÍBLE!

Mike	
  Schroder	
  |	
  @GetSource	
  |	
  #wcuma	
  
AÑÁDELO LOCALMENTE
Ejecutar/Alias:	
  	
  

$ wp --require='cmd_name.php’

wp-­‐cli.yml	
  

require: /path/to/cmd_name.ph...
Ó EN LOS PLUGINS
if ( defined('WP_CLI') && WP_CLI ) {
    include( PLUGIN_DIR . '/lib/wp-cli.php' );
}

Mike	
  Schroder	
...
COMANDO PERSONALIZADO: BACKUP
$ wp migrate backup [ficha.tar.gz]

[--no-db] [--db-name=<ficha.sql>]

Mike	
  Schroder	
  |...
COMANDO PERSONALIZADO: BACKUP
Strategía
-­‐	
  	
  Utiliza	
  el	
  comando	
  internal	
  para	
  guardar	
  la	
  base	
...
AÑADA COMMANDO
<?php
WP_CLI::add_command( 'migrate', 'DH_Migrate_Command' );
/**
* DreamHost Migrate Plugin
*
* @package D...
DEFINE EL SUBCOMMANDO
/**
* Guarda WordPress entero, encluyendo core, plugins y la base de datos.
*
* ## OPTIONS
*
* [<bac...
DEFINE EL SUBCOMMANDO
$args

Argumentos	
  Independientes	
  

$assoc_args

--arg=value	
  Argumentos	
  Associativos	
  
...
function backup( $args, $assoc_args ) {
    $filename = $dbname = null;
    $backup_directory = '../';
    // Si no specif...
  // Si specifica --no-db, no guarda la base de datos.
  if ( ! isset( $assoc_args['no-db'] ) ) {

 

$dbname = isset( $as...
// Utilizamos esc_cmd para filtrar los argumentos automaticamente.
// No podemos utilizar --exclude-vcs, porque no funcion...
  

// Si creimos una copia de la base de datos, borra la copia temporal.
  if ( $dbname && ! unlink( $backup_directory . ...
 
	
  
WP-CLI:

APRENDE MÁS:

-­‐	
  	
  wp-­‐cli.org	
  
-­‐	
  	
  getsource.net/tag/wp-­‐cli/	
  
-­‐	
  	
  halfelf.or...
Upcoming SlideShare
Loading in …5
×

Mike Schroder: Administra WordPress automáticamente con WP-CLI

265 views

Published on

Aprende cómo utilizar la línea de comandos (CLI) para mejorar tú vida como administrador de WordPress. ¿Te encanta la idea de actualizar todos los plugins con el simple comando de “wp plugin update-all“? Descubre WP-CLI, una herramienta de software libre para manejar WordPress. Aprenderás cómo instalarlo, hacer operaciones comunes de administración en WordPress, y ampliar su funcionalidad con plugins de tu propia creación.

Published in: Education
  • Be the first to comment

  • Be the first to like this

Mike Schroder: Administra WordPress automáticamente con WP-CLI

  1. 1. ADMINISTRA WORDPRESS AUTOMÁTICAMENTE CON WP-CLI WordCamp  Málaga  2013   Mike  Schroder  |  @GetSource   Developer,  WordPress  Specialist  con  DreamHost  
  2. 2. Mike  Schroder,  alias  DH-­‐Shredder,  alias  @GetSource   CREDENTIALS   Empleado  Feliz  de  DreamHost   Contribuador  a  WordPress  Core   WordPress  3.5  Recent  Rockstar   Contribuidor  a  WP-­‐CLI   RANDOM FACTS   Multicutural   Encanta  Café  y  Sailing   Blogea  en  getsource.net   Mike  Schroder  |  @GetSource  |  #wcuma  
  3. 3. Mike  Schroder  |  @GetSource  |  #wcuma  
  4. 4. HAY DOS GROUPOS DE GENTE Mike  Schroder  |  @GetSource  |  #wcuma  
  5. 5. LOS QUE UTILIZAN LA LÍNEA DE COMANDOS Mike  Schroder  |  @GetSource  |  #wcuma  
  6. 6. LOS QUE VAN A UTILZAR LA LÍNEA DE COMANDOS Mike  Schroder  |  @GetSource  |  #wcuma  
  7. 7. NO TENGAS MIEDO DE LA CLI ES  TU  AMIGO.   Mike  Schroder  |  @GetSource  |  #wcuma  
  8. 8. TE GUSTA LA CLI? WP-­‐CLI  TE  MEJORA  LA  VIDA   Mike  Schroder  |  @GetSource  |  #wcuma  
  9. 9. SUPER-GUAY SOFTWARE LIBRE PARA MANEJAR WORDPRESS Mike  Schroder  |  @GetSource  |  #wcuma  
  10. 10. MANEJADO POR CRISTI BURCĂ (SCRIBU) Y ANDREAS CRETEN Mike  Schroder  |  @GetSource  |  #wcuma  
  11. 11. UTILIZA WORDPRESS SÍ MISMO PARA OPERARSE Mike  Schroder  |  @GetSource  |  #wcuma  
  12. 12. ¡AUTOMATIZATE! Mike  Schroder  |  @GetSource  |  #wcuma  
  13. 13. ¿QUE PUEDO HACER? Mike  Schroder  |  @GetSource  |  #wcuma  
  14. 14. Mike  Schroder  |  @GetSource  |  #wcuma  
  15. 15. EN SERIO. Mike  Schroder  |  @GetSource  |  #wcuma  
  16. 16. ACTUALIZA WORDPRESS $ wp core update Mike  Schroder  |  @GetSource  |  #wcuma  
  17. 17. INSTALLA UN PLUGIN $ wp plugin install <slug o .zip> Mike  Schroder  |  @GetSource  |  #wcuma  
  18. 18. ELIGE UN TEMA $ wp theme activate <slug> Mike  Schroder  |  @GetSource  |  #wcuma  
  19. 19. GUARDA LA BASE DE DATOS $ wp db export [ficha] Mike  Schroder  |  @GetSource  |  #wcuma  
  20. 20. ACTUALIZA LOS PLUGINS $ wp plugin update-all Mike  Schroder  |  @GetSource  |  #wcuma  
  21. 21. ACTUALIZA LOS TEMAS $ wp theme update-all Mike  Schroder  |  @GetSource  |  #wcuma  
  22. 22. SUSTITUIR TEXTO EN DB $ wp search-replace <viejo> <nuevo> Mike  Schroder  |  @GetSource  |  #wcuma  
  23. 23. ¿QUÉ ES ÉSTA MÁGIA? Mike  Schroder  |  @GetSource  |  #wcuma  
  24. 24. Mike  Schroder  |  @GetSource  |  #wcuma  
  25. 25. CONVENCIDO. ¿CÓMO PUEDO OBTENERLO? Mike  Schroder  |  @GetSource  |  #wcuma  
  26. 26. ¿QUÉ REQUIERE PARA USARLO? -­‐    Accesso  SSH  a  tu  directorio  WordPress   -­‐    PHP  5.3.2+   -­‐    WordPress  3.4+   -­‐    Tanta  RAM  para  que  corren  los  processos          shell  de  WordPress   -­‐    Linux  o  MacOS  (por  ahora)   Mike  Schroder  |  @GetSource  |  #wcuma  
  27. 27. INSTALA COMO USADOR LOCAL Instrucciones Completas: wp-­‐cli.org     $ curl http://wp-cli.org/installer.sh | bash Mike  Schroder  |  @GetSource  |  #wcuma  
  28. 28. ¡ESPERA; HAY MÁS! Mike  Schroder  |  @GetSource  |  #wcuma  
  29. 29. ¡WP-CLI ES EXTENSÍBLE! Mike  Schroder  |  @GetSource  |  #wcuma  
  30. 30. AÑÁDELO LOCALMENTE Ejecutar/Alias:     $ wp --require='cmd_name.php’ wp-­‐cli.yml   require: /path/to/cmd_name.php Mike  Schroder  |  @GetSource  |  #wcuma  
  31. 31. Ó EN LOS PLUGINS if ( defined('WP_CLI') && WP_CLI ) {     include( PLUGIN_DIR . '/lib/wp-cli.php' ); } Mike  Schroder  |  @GetSource  |  #wcuma  
  32. 32. COMANDO PERSONALIZADO: BACKUP $ wp migrate backup [ficha.tar.gz] [--no-db] [--db-name=<ficha.sql>] Mike  Schroder  |  @GetSource  |  #wcuma  
  33. 33. COMANDO PERSONALIZADO: BACKUP Strategía -­‐    Utiliza  el  comando  internal  para  guardar  la  base  de  datos   -­‐    Crea  un  .tar.gz  combinando  las  aichas  del  instalación          y  la  base  de  datos   Mike  Schroder  |  @GetSource  |  #wcuma  
  34. 34. AÑADA COMMANDO <?php WP_CLI::add_command( 'migrate', 'DH_Migrate_Command' ); /** * DreamHost Migrate Plugin * * @package DH_Migrate_Command * @subpackage commands/community * @maintainer Mike Schroder */ class DH_Migrate_Command extends WP_CLI_Command { // ... Mike  Schroder  |  @GetSource  |  #wcuma  
  35. 35. DEFINE EL SUBCOMMANDO /** * Guarda WordPress entero, encluyendo core, plugins y la base de datos. * * ## OPTIONS * * [<backup-filename>] * : Fichero donde guardar la copia de seguridad * * [--no-db] * : No crea copia de seguridad de la base de datos * dentro del archivo creado * * [--db-name=<filename>] * : Guarda el base de datos en el archivo con el nombre <filename> * * ... Mike  Schroder  |  @GetSource  |  #wcuma  
  36. 36. DEFINE EL SUBCOMMANDO $args Argumentos  Independientes   $assoc_args --arg=value  Argumentos  Associativos   * ...  */ function backup( $args, $assoc_args ) { // ... Mike  Schroder  |  @GetSource  |  #wcuma  
  37. 37. function backup( $args, $assoc_args ) {     $filename = $dbname = null;     $backup_directory = '../';     // Si no specifica un nombre para el fichero, // usa "Site's Title.tar.gz"     if ( empty( $args ) )         $filename = $backup_directory . get_bloginfo() . '.tar.gz';     else         $filename = $args[0]; // ... Mike  Schroder  |  @GetSource  |  #wcuma  
  38. 38.   // Si specifica --no-db, no guarda la base de datos.   if ( ! isset( $assoc_args['no-db'] ) ) {   $dbname = isset( $assoc_args['db-name'] ) ? $assoc_args['db-name'] : 'database_backup.sql';   } WP_CLI::run_command( array( 'db', 'export', $backup_directory . $dbname), array() ); // ... Mike  Schroder  |  @GetSource  |  #wcuma  
  39. 39. // Utilizamos esc_cmd para filtrar los argumentos automaticamente. // No podemos utilizar --exclude-vcs, porque no funciona en OSX. WP_CLI::line( "Guardano en $filename ..." ); $result = WP_CLI::launch( WP_CLIUtilsesc_cmd( "       tar                                --exclude '.git'            --exclude '.svn'              --exclude '.hg’               --exclude '.bzr'              -czf %s . -C %s %s     ", $filename, $backup_directory, $dbname ), false ); // ... Mike  Schroder  |  @GetSource  |  #wcuma  
  40. 40.    // Si creimos una copia de la base de datos, borra la copia temporal.   if ( $dbname && ! unlink( $backup_directory . $dbname ) )       WP_CLI::warning( "No pude borrar la base de datos temporal, '$dbname'." );      if ( 0 == $result ) {        WP_CLI::success( "Copia de seguridad creado." );    } else {        WP_CLI::error( "Creatión de la copia de seguridad ha fallado." );    } } // Termina backup } // Termina DH_Migrate_Command Mike  Schroder  |  @GetSource  |  #wcuma    
  41. 41.     WP-CLI: APRENDE MÁS: -­‐    wp-­‐cli.org   -­‐    getsource.net/tag/wp-­‐cli/   -­‐    halfelf.org/2012/command-­‐line-­‐wp       Chuleta de CLI: -­‐    ailes.fosswire.com/2007/08/fwunixref.pdf     Mike  Schroder  |  @GetSource  |  #wcuma  

×