Slide 1

Slide 1 text

Mike  Schroder  |  @GetSource   Developer,  WordPress  Specialist  con  DreamHost   ADMINISTRA WORDPRESS AUTOMÁTICAMENTE CON WP-CLI WordCamp  Las  Peñitas  2014  

Slide 2

Slide 2 text

RANDOM FACTS   Multicutural   Encanta  Café  y  Sailing   Blogea  en  getsource.net   CREDENTIALS   Mike  Schroder,  alias  DH-­‐Shredder,  alias  @GetSource   Empleado  Feliz  de  DreamHost   Co-­‐Líder  de  WordPress  3.9   Contribuidor  a  WP-­‐CLI   Mike  Schroder  |  @GetSource  |  #WordCampNI  

Slide 3

Slide 3 text

HAY DOS GROUPOS DE GENTE Mike  Schroder  |  @GetSource  |  #WordCampNI  

Slide 4

Slide 4 text

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

Slide 5

Slide 5 text

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

Slide 6

Slide 6 text

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

Slide 7

Slide 7 text

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

Slide 8

Slide 8 text

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

Slide 9

Slide 9 text

MANEJADO POR DANIEL BACHHUBER Y CREADO POR ANDREAS CRETEN Y SCRIBU Mike  Schroder  |  @GetSource  |  #WordCampNI  

Slide 10

Slide 10 text

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

Slide 11

Slide 11 text

¡AUTOMATIZATE! Mike  Schroder  |  @GetSource  |  #WordCampNI  

Slide 12

Slide 12 text

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

Slide 13

Slide 13 text

Mike  Schroder  |  @GetSource  |  #WordCampNI  

Slide 14

Slide 14 text

EN SERIO. Mike  Schroder  |  @GetSource  |  #WordCampNI  

Slide 15

Slide 15 text

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

Slide 16

Slide 16 text

$ wp plugin install INSTALLA UN PLUGIN Mike  Schroder  |  @GetSource  |  #WordCampNI  

Slide 17

Slide 17 text

$ wp theme activate ELIGE UN TEMA Mike  Schroder  |  @GetSource  |  #WordCampNI  

Slide 18

Slide 18 text

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

Slide 19

Slide 19 text

$ wp import IMPORTA CONTENIDO Mike  Schroder  |  @GetSource  |  #WordCampNI  

Slide 20

Slide 20 text

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

Slide 21

Slide 21 text

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

Slide 22

Slide 22 text

$ wp search-replace SUSTITUIR TEXTO EN DB Mike  Schroder  |  @GetSource  |  #WordCampNI  

Slide 23

Slide 23 text

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

Slide 24

Slide 24 text

Mike  Schroder  |  @GetSource  |  #WordCampNI  

Slide 25

Slide 25 text

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

Slide 26

Slide 26 text

-­‐    Accesso  SSH  a  tu  directorio  WordPress   -­‐    PHP  5.3.2+   -­‐    WordPress  3.5.2+   -­‐    Tanta  RAM  para  que  corren  los  processos          shell  de  WordPress   -­‐    Linux  o  MacOS  (por  ahora)   ¿QUÉ REQUIERE PARA USARLO? Mike  Schroder  |  @GetSource  |  #WordCampNI  

Slide 27

Slide 27 text

$ curl -kL https://raw.github.com/wp-cli/ builds/gh-pages/phar/wp-cli.phar > wp-cli.phar INSTALA COMO USADOR LOCAL Instrucciones Completas: wp-­‐cli.org     Mike  Schroder  |  @GetSource  |  #WordCampNI  

Slide 28

Slide 28 text

¡ESPERA; HAY MÁS! Mike  Schroder  |  @GetSource  |  #WordCampNI  

Slide 29

Slide 29 text

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

Slide 30

Slide 30 text

Ejecutar/Alias:     $ wp --require='cmd_name.php’ wp-­‐cli.yml   require: /path/to/cmd_name.php AÑÁDELO LOCALMENTE Mike  Schroder  |  @GetSource  |  #WordCampNI  

Slide 31

Slide 31 text

Ó EN LOS PLUGINS if ( defined('WP_CLI') && WP_CLI ) { include( PLUGIN_DIR . '/lib/wp-cli.php' ); } Mike  Schroder  |  @GetSource  |  #WordCampNI  

Slide 32

Slide 32 text

$ wp migrate backup [ficha.tar.gz] [--no-db] [--db-name=] COMANDO PERSONALIZADO: BACKUP Mike  Schroder  |  @GetSource  |  #WordCampNI  

Slide 33

Slide 33 text

Strategía -­‐    Utiliza  el  comando  internal  para  guardar  la  base  de  datos   -­‐    Crea  un  .tar.gz  combinando  las  dichas  del  instalación          y  la  base  de  datos   COMANDO PERSONALIZADO: BACKUP Mike  Schroder  |  @GetSource  |  #WordCampNI  

Slide 34

Slide 34 text

AÑADA COMMANDO

Slide 35

Slide 35 text

DEFINE EL SUBCOMMANDO /** * Guarda WordPress entero, encluyendo core, plugins y la base de datos. * * ## OPTIONS * * [] * : 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=] * : Guarda el base de datos en el archivo con el nombre * * ... Mike  Schroder  |  @GetSource  |  #WordCampNI  

Slide 36

Slide 36 text

DEFINE EL SUBCOMMANDO * ... */ function backup( $args, $assoc_args ) { // ... $args Argumentos  Independientes   $assoc_args --arg=value  Argumentos  Associativos   Mike  Schroder  |  @GetSource  |  #WordCampNI  

Slide 37

Slide 37 text

function backup( $args, $assoc_args ) { $filename = $dbname = null; $backup_directory = '../'; // Si no specifica un nombre para el fichero, // usa "Titlulo del Sitio.tar.gz" if ( empty( $args ) ) $filename = $backup_directory . get_bloginfo() . '.tar.gz'; else $filename = $args[0]; // ... Mike  Schroder  |  @GetSource  |  #WordCampNI  

Slide 38

Slide 38 text

// 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  |  #WordCampNI  

Slide 39

Slide 39 text

// Utilizamos esc_cmd para filtrar los argumentos automaticamente. // No podemos utilizar --exclude-vcs, porque no funciona en OSX. WP_CLI::line( "Guardando 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  |  #WordCampNI  

Slide 40

Slide 40 text

// 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  |  #WordCampNI  

Slide 41

Slide 41 text

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