Gestire WordPress da terminale con WP-CLI
  • Post last modified:23 Giugno 2020
  • Post category:WP-CLI
  • Post comments:0 Commenti

La dashboard è lo strumento principale per gestire WordPress e consente di amministrarne i contenuti e le impostazioni, installare temi e plugin, personalizzare l’aspetto e così via. Tutto con semplici click del mouse.

Questo è ciò che ho saputo per anni. Poi ho scoperto WP-CLI e niente è stato più come prima.

Di cosa si tratta

WP-CLI è uno strumento che si interfaccia con WordPress e che consente di effetturare su di esso tantissime attività attraverso specifici comandi.

Si presenta sotto forma di file con estensione .phar, che sta per “PHP Archive”, un sistema che consente di distribuire applicazioni PHP in un unico pacchetto (puoi trovare tutti i dettagli nella documentazione ufficiale).


Perchè

Perchè complicarsi la vita con la linea di comando quando esiste già un comodo pannello di amministrazione accessibile dal browser?

Ecco alcuni motivi per farlo:

  • una volta scritto e testato, un comando può essere copiato e messo da parte per essere riutilizzato in futuro in modo rapido e veloce.
  • i comandi possono essere raccolti in uno script ed eseguiti tutti in un’unica sequenza. Immagina di dover effettuare periodicamente un certo numero di attività su un sito WordPress. Puoi tradurre queste attività in comandi da inserire in uno script da eseguire direttamente.
  • si possono effettuare operazioni non disponibili nella dashboard di WordPress (ad esempio eliminare le vecchie revisioni).
  • se te la senti, puoi aggiornare in una sola volta tutti i plugin installati, il core di WordPress e i temi.
  • puoi creare liste e ottenere molti dettagli relativi a WordPress e ai contenuti presenti sul sito.
  • perchè usare la riga di comando è divertente, mi sembra ovvio! 🙂

Installazione

WP-CLI è pensato principalmente per l’uso su Linux, ma è possibile eseguirlo anche su Windows rispettandone i requisiti.

Se hai un hosting dai un’occhiata alle relative specifiche perchè servizi di buon livello forniscono accesso SSH e WP-CLI preinstallato.

Per l’installazione manuale puoi fare riferimento alle istruzioni presenti nella documentazione ufficiale:

In entrambi i casi, al termine della procedura avrai a disposizione il comando wp in qualsiasi percorso.

Nota di servizio: dal momento che il mio ambiente di lavoro locale è su Windows, gli esempi che seguono sono basati su PowerShell. Se ti trovi su Linux i comandi funzionano allo stesso modo, ma è necessario adeguare gli eventuali path oppure potresti vedere un output leggermente diverso.


Utilizzo

Dopo aver completato l’installazione è utile fare un test per verificare il corretto funzionamento. Il comando da usare è il seguente:

PS C:\Users\andrea> wp --info
OS:     Windows NT 10.0 build 17134 (Windows 10) AMD64
Shell:  C:\WINDOWS\system32\cmd.exe
PHP binary:     D:\laragon\bin\php\php-7.4.0-nts-Win32-VC15-x64\php.exe
PHP version:    7.4.0
php.ini used:   D:\laragon\bin\php\php-7.4.0-nts-Win32-VC15-x64\php.ini
WP-CLI root dir:        phar://wp-cli.phar/vendor/wp-cli/wp-cli
WP-CLI vendor dir:      phar://wp-cli.phar/vendor
WP_CLI phar path:       C:\Users\andrea
WP-CLI packages dir:    C:\Users\andrea/.wp-cli/packages/
WP-CLI global config:
WP-CLI project config:
WP-CLI version: 2.4.0

L’output è relativo al mio sistema, per cui non prenderlo alla lettera. Ma dovresti ottenere qualcosa di simile.

Se vuoi vedere una lista di tutti i comandi disponibili puoi digitare:

wp --help


Lo stesso parametro può essere usato per avere i dettagli di qualsiasi comando:

wp [comando] --help


E ora passiamo alle cose interessanti.

Per “comunicare” con WordPress, dobbiamo eseguire il comando wp dalla root del sito: WP-CLI, infatti, utilizza il file wp-config.php per sapere come accedere al database. In altre parole, non è necessario fornire le credenziali di un utente admin del sito, sono sufficienti i dati contenuti nel file di configurazione di WordPress. Comodo, no?

Vediamo quindi alcuni esempi di comandi eseguiti su una istanza WordPress.

PS D:\laragon\www\test_wp_01> wp option get blogname
Test WP 01

PS D:\laragon\www\test_wp_01> wp post list
+----+-------------+------------+---------------------+-------------+
| ID | post_title  | post_name  | post_date           | post_status |
+----+-------------+------------+---------------------+-------------+
| 1  | Ciao mondo! | ciao-mondo | 2018-04-02 13:10:21 | publish     |
+----+-------------+------------+---------------------+-------------+

PS D:\laragon\www\test_wp_01> wp post list --post_type=page
+----+------------+------------+---------------------+-------------+
| ID | post_title | post_name  | post_date           | post_status |
+----+------------+------------+---------------------+-------------+
| 42 | Dove siamo | dove-siamo | 2018-04-02 21:53:56 | publish     |
| 39 | Prodotti   | prodotti   | 2018-04-02 21:53:24 | publish     |
| 27 | Notizie    | notizie    | 2018-04-02 18:49:00 | publish     |
| 23 | Home       | home       | 2018-04-02 18:44:54 | publish     |
| 20 | Chi siamo  | chi-siamo  | 2018-04-02 18:42:33 | publish     |
| 13 | Contatti   | contatti   | 2018-04-02 13:18:40 | publish     |
+----+------------+------------+---------------------+-------------+

PS D:\laragon\www\test_wp_01> wp plugin list
+------------------+----------+-----------+---------+
| name             | status   | update    | version |
+------------------+----------+-----------+---------+
| akismet          | inactive | available | 4.0.8   |
| hello            | inactive | available | 1.6     |
| jetpack          | active   | none      | 6.3.3   |
+------------------+----------+-----------+---------+


Potrei andare avanti per molto ma per adesso mi fermo qui. WP-CLI permette di fare molte altre cose e non solo “in lettura” come negli esempi appena visti.

Se il post ha acceso il tuo interesse per questo fantastico strumento, ti suggerisco di creare una installazione di test di WordPress e sperimentare. Oltre all’help in linea, tieni sempre sotto mano il sito ufficiale, la lista dei comandi e la documentazione generale.

Se vuoi vedere un esempio di script che integra i comandi di WP-CLI, puoi dare un’occhiata a wp-install-powershell, un piccolo progetto che ho realizzato per installare rapidamente nuove istanze di WordPress.

Lascia un commento