Usando wp-cli per divertimento e profitto

Scopri come è possibile eseguire attività comuni di WordPress più rapidamente o addirittura automatizzarle utilizzando la potenza di bash.


Cos'è wp-cli?

wp-cli è uno strumento per controllare WordPress attraverso una finestra della console.

Quando l'interfaccia di amministrazione di WordPress è così bella e facile da usare, la domanda naturale è: perché dovresti usare un'interfaccia della riga di comando?

Ci sono due ragioni principali:

  • La tastiera è più veloce del mouse - Per gli utenti esperti, digitare un comando può essere un ordine di grandezza più veloce rispetto alla pressione di un pulsante in un browser web.
  • Scripting - Puoi mettere diversi comandi in un file di testo e farlo eseguire automaticamente.

In questo tutorial ti darò un assaggio di cosa è utile per wp-cli.


Installare wp-cli

Prima di usarlo, avrai bisogno di alcune cose:

  1. Shell simile a UNIX - Se sei su un Mac o Linux, puoi eseguire wp-cli sul tuo computer locale. Se sei su Windows, puoi accedere al tuo server Linux tramite Putty e installare wp-cli lì.

  2. PHP 5.3+ e l'utilità php-cli - Puoi vedere se hai questi eseguendo il seguente comando:

    php -v
  3. Idiota - Questo è ciò che useremo per installare e aggiornare wp-cli.

Il progetto wp-cli è ancora nella sua infanzia, quindi il modo migliore per rimanere aggiornato sulle ultime versioni è clonarlo da github:

 git clone --recurse-submodules git: //github.com/andreascreten/wp-cli.git ~ / git / wp-cli cd ~ / git / wp-cli sudo utils / build-dev

~ / Git / wp-cli è la directory in cui verrà installato wp-cli. Sentiti libero di cambiarlo in qualsiasi cosa tu voglia.

Questo è tutto. Ora il wp il comando dovrebbe essere disponibile:

 cd / var / www / public_html / wordpress wp

Su Multisite

Se si desidera utilizzare wp-cli su un'installazione multisito, è necessario decidere su quale blog si desidera operare:

 wp --blog = myblog.mynetwork.com

Per evitare di dover passare il --blog parametro per ogni comando, è possibile memorizzarlo in un file appositamente denominato:

 echo 'myblog.mynetwork.com'> wp-cli-blog

wp-cli leggerà quel file se non c'è --blog parametro.


Gestione del core

Per prima cosa, vediamo di quale versione di WordPress abbiamo a che fare:

 versione core wp --extra

Per eseguire un aggiornamento, è sufficiente scrivere:

 aggiornamento del core wp

Gestione dei plugin

Vediamo quali plugin abbiamo installato:

 stato del plugin wp

Huh, sembra che ci sia un aggiornamento disponibile per Akismet. Installiamolo:

 aggiornamento del plugin wp akismet

Ora installiamo e attiviamo un plugin da wordpress.org:

 plugin wp installa google-sitemap-generator --activate

Inoltre, puoi installare la versione di sviluppo di un plug-in:

 plugin wp installa google-sitemap-generator --activate --dev

Oh, e guarda, ora c'è un nuovo comando disponibile:

 wp google-sitemap

Possiamo passare rapidamente un plug-in da attivo a inattivo e viceversa:

 plugin wp attiva google-sitemap-generator

Questo è un buon modo per eseguire il debug degli hook di attivazione.

Allo stesso modo, puoi eseguire la procedura di disinstallazione di un plugin senza eliminare i file del plugin:

 plugin wp disinstallare google-sitemap-generator

E, naturalmente, puoi anche eliminare il plugin:

 plugin wp cancella google-sitemap-generator

Temi di gestione

Abbiamo alcuni comandi per lavorare anche con i temi:

 stato del tema wp

A differenza dei plugin, puoi avere un solo tema alla volta, quindi l'attivazione di un tema "disattiva" automaticamente il precedente:

 il tema wp si attiva venti

Ed ecco un piccolo trucco per andare nella directory di un tema particolare:

 cd $ (wp theme path twentyeleven)

Generazione di dati

Se stai scrivendo un tema e vuoi modellare l'impaginazione, avrai bisogno di molti post. Ecco il modo più veloce per ottenerli:

 wp genera post --count = 1000

Se vuoi stilare un elenco di utenti, puoi anche generare alcuni di questi:

 wp genera utenti --role = autore

Puoi anche creare singoli utenti:

 l'utente wp crea stan [email protected]

Creazione di file di esportazione

Potresti voler esportare periodicamente il tuo contenuto in un file WXR.

 esportazione wp --path =. / --user = admin

È possibile passare ulteriori parametri per limitare il contenuto esportato, ad esempio --categoria, --data d'inizio eccetera.


Modifica delle opzioni al volo

Ci sono comandi diretti per CRUD operazioni su opzioni:

 Opzione wp get permalink_structure wp option aggiungi foo bar wp option elimina foo

Non vuoi farlo regolarmente, poiché la maggior parte delle opzioni è vincolata a determinati valori. Ma può tornare utile negli script.


Operazioni di database

Se vuoi fare un backup del database, scrivi semplicemente:

 wp db dump

O forse hai bisogno di fare una rapida domanda per trovare quando è stato pubblicato l'ultimo post:

 wp db query "SELEZIONA MAX (post_date) da wp_posts WHERE post_type =" post "AND post_status =" pubblica ""

Aprire una sessione MySQL interattiva per fare alcuni test diagnostici è altrettanto facile:

 wp db cli

Esecuzione di codice arbitrario

A volte, l'unico modo per dire a wp-cli quello che vuoi è descriverlo nel codice PHP:

 wp eval-file do-my-laundry.php

Con il comando precedente, wp-cli caricherà prima WordPress e quindi caricherà ed eseguirà il tuo file PHP.

Questo è utile per distribuire script o per altre azioni complesse che non possono essere ottenute utilizzando i comandi incorporati.

Puoi anche passare il codice PHP in linea:

 wp eval 'echo WP_CONTENT_DIR;'

Creare i tuoi propri comandi

Che ci crediate o no, wp-cli è scritto principalmente in PHP. Ogni comando è una classe, con ogni metodo che rappresenta un sottocomando.

La cosa bella è che puoi creare la tua classe, inserirla in un plugin e wp-cli lo riconoscerà automaticamente come uno di loro. Un tutorial dettagliato per la creazione di comandi è disponibile nel wiki del progetto.


Conclusione

Spero di averti convinto almeno a provare wp-cli. Se hai trovato un bug o se hai una richiesta di funzionalità, considera l'apertura di un problema.

Hai un caso d'uso interessante per wp-cli? Si prega di condividerlo nei commenti qui sotto.