Save 37% off PRO during our Black Friday Sale! »

Administra WordPress Automáticamente con WP-CLI

Administra WordPress Automáticamente con WP-CLI

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.

46fa959634a063abefcac94eaf191eca?s=128

Mike Schroder

October 26, 2013
Tweet

Transcript

  1. Mike  Schroder  |  @GetSource   Developer,  WordPress  Specialist  con  DreamHost

      ADMINISTRA WORDPRESS AUTOMÁTICAMENTE CON WP-CLI WordCamp  Málaga  2013  
  2. RANDOM FACTS   Multicutural   Encanta  Café  y  Sailing  

    Blogea  en  getsource.net   CREDENTIALS   Mike  Schroder,  alias  DH-­‐Shredder,  alias  @GetSource   Empleado  Feliz  de  DreamHost   Contribuador  a  WordPress  Core   WordPress  3.5  Recent  Rockstar   Contribuidor  a  WP-­‐CLI   Mike  Schroder  |  @GetSource  |  #wcuma  
  3. Mike  Schroder  |  @GetSource  |  #wcuma  

  4. HAY DOS GROUPOS DE GENTE Mike  Schroder  |  @GetSource  |

     #wcuma  
  5. LOS QUE UTILIZAN LA LÍNEA DE COMANDOS Mike  Schroder  |

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

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

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

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

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

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

     |  #wcuma  
  12. ¡AUTOMATIZATE! Mike  Schroder  |  @GetSource  |  #wcuma  

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

  14. Mike  Schroder  |  @GetSource  |  #wcuma  

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

  16. $ wp core update ACTUALIZA WORDPRESS Mike  Schroder  |  @GetSource

     |  #wcuma  
  17. $ wp plugin install <slug o .zip> INSTALLA UN PLUGIN

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

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

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

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

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

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

     
  24. Mike  Schroder  |  @GetSource  |  #wcuma  

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

     
  26. -­‐    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)   ¿QUÉ REQUIERE PARA USARLO? Mike  Schroder  |  @GetSource  |  #wcuma  
  27. $ curl http://wp-cli.org/installer.sh | bash INSTALA COMO USADOR LOCAL Instrucciones

    Completas: wp-­‐cli.org     Mike  Schroder  |  @GetSource  |  #wcuma  
  28. ¡ESPERA; HAY MÁS! Mike  Schroder  |  @GetSource  |  #wcuma  

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

  30. Ejecutar/Alias:     $ wp --require='cmd_name.php’ wp-­‐cli.yml   require: /path/to/cmd_name.php

    AÑÁDELO LOCALMENTE Mike  Schroder  |  @GetSource  |  #wcuma  
  31. Ó EN LOS PLUGINS if ( defined('WP_CLI') && WP_CLI )

    { include( PLUGIN_DIR . '/lib/wp-cli.php' ); } Mike  Schroder  |  @GetSource  |  #wcuma  
  32. $ wp migrate backup [ficha.tar.gz] [--no-db] [--db-name=<ficha.sql>] COMANDO PERSONALIZADO: BACKUP

    Mike  Schroder  |  @GetSource  |  #wcuma  
  33. 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   COMANDO PERSONALIZADO: BACKUP Mike  Schroder  |  @GetSource  |  #wcuma  
  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. 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. DEFINE EL SUBCOMMANDO * ... */ function backup( $args, $assoc_args

    ) { // ... $args Argumentos  Independientes   $assoc_args --arg=value  Argumentos  Associativos   Mike  Schroder  |  @GetSource  |  #wcuma  
  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. // 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. // 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_CLI\Utils\esc_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. // 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.     -­‐    wp-­‐cli.org   -­‐    getsource.net/tag/wp-­‐cli/  

    -­‐    halfelf.org/2012/command-­‐line-­‐wp       -­‐    ailes.fosswire.com/2007/08/fwunixref.pdf     APRENDE MÁS: WP-CLI: Chuleta de CLI: Mike  Schroder  |  @GetSource  |  #wcuma