WP-CLI 101 – Come usare la CLI di WordPress partendo da zero

Etichettato come Sviluppo, WordPress Taggato ,

WP-CLI è una fantastica interfaccia a riga di comando utile nella gestione di un’installazione di WordPress. Nonostante personalmente non ne faccia un uso intensivo, è uno strumento con un enorme potenziale che torna sempre utile.

Va’ da se che, per poter utilizzare la CLI di WordPress, la familiarità con l’uso del terminale è d’obbligo, ma sono certo che anche chi è più a digiuno non farà fatica a capirne il funzionamento.

Dunque, ecco una breve guida per iniziare per iniziare ad usare WP-CLI partendo da zero!


Installare WP-CLI

Esistono dei prerequisiti per l’installazione della Cli di WordPress. In particolare é richiesto un ambiente UNIX-Like, PHP 5.3.29 o superiore e WordPress 3.7 o superiore. Per quanto riguarda Windows, il supporto esiste ma è limitato.

Verificata la compatibilità con il proprio ambiente, eccoti i passaggi da copiare e incollare per poter procedere oltre!

Come prima cosa apriamo il terminale. Successivamente scarichiamo WP-CLI e verifichiamo il pacchetto con questi comandi:

// Scarichiamo WPCli
curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar

// Verifichiamo il pacchetto
php wp-cli.phar --info

Il prossimo passo è rendere il file wp-cli.phar eseguibile, spostandolo nella PATH. Ecco i comandi:

chmod +x wp-cli.phar
sudo mv wp-cli.phar /usr/local/bin/wp

Verifichiamo che tutto funzioni digitando il comando wp-info e se tutto è andato bene riceveremo questa risposta:

OS:  Linux 4.10.0-42-generic
Shell:   /usr/bin/zsh
PHP binary:    /usr/bin/php
PHP version:     7.1.12-1+ubuntu16.04.1+deb.sury.org+1
php.ini used:   /etc/php/7.1/cli/php.ini
WP-CLI root dir:        /home/wp-cli/.wp-cli
WP-CLI packages dir:    /home/wp-cli/.wp-cli/packages/
WP-CLI global config:   /home/wp-cli/.wp-cli/config.yml
WP-CLI project config:
WP-CLI version: 1.5.0

Concluse le formalità andiamo al passo successivo.

Installare e configurare WordPress

La prima cosa che possiamo imparare a fare da riga di comando è scaricare e installare WordPress. La riga di comando ci giunge in soccorso con dei semplici comandi che permettono di essere operativi in pochissimo, senza dover perdere tempo a scaricare, importare e installare un pacchetto di WordPress manualmente.

Step 0 – Scarichiamo WordPress

Rechiamoci nella cartella dove vogliamo installare WP e digitiamo wp core download. Cosa fa questo comando? Analizziamo insieme la struttura: di base wp richiama la CLI, mentre core è un comando che identifica una operazione da eseguire sull’installazione di WordPress. Quello che segue – download in questo caso – è il sottocomando che chiede di scaricare l’ultima versione.

Se fino ad ora abbiamo visto solo comandi, l’aiuto principale deriva dalle opzioni. Potremmo aver bisogno, ad esempio, di voler installare una versione di WordPress tradotta in un’altra lingua o di voler scaricare una precisa versione di WordPress. Ecco allora quali opzioni possono tornarci utili:

--locale=it_IT Scarica la versione localizzata in Italiano. Utilizzando
--version=latest Scarica l’ultima versione di WP. È possibile utilizzare nightly per ricevere l’ultima versione beta oppure inserire il numero della versione che si vuole installare.
--skip-content Installa WordPress senza nessun tema o plugin di default
--path=<percorso> Al posto di <percorso> puoi inserire il percorso della directory dove installare WP.

Step 1 – Configuriamo il database

Dopo aver scaricato WordPress passiamo alla configurazione del file wp-config.php. Questo passaggio precede l’installazione vera e propria; è infatti necessario per configurare gli accessi, e altre impostazioni globali, del database.

Inseriamo quindi il comando wp config create seguito dalle seguenti opzioni obbligatorie:

--dbname=nome_db fornisce il nome del database
--dbuser=username_db fornisce l’username del database
--dbpass=password_db fornisce la password del database
--dbhost=host_db fornisce l’host del database (default: localhost)

Se ti stai chiedendo “esistono altre opzioni?” la risposta è: sì! Possiamo infatti definire meglio il collegamento e la struttura del database tramite queste opzioni secondarie:

--dbprefix Imposta un prefisso personalizzato alle tabelle del database (default: wp_)
--dbcharset Imposta il set di caratteri, o charset, del database (default: utf8)
--dbcollate Imposta la collation del charset – es. utf8_general_ci (default: no)

Esistono anche altre opzioni per forzare o saltare alcuni step di configurazione (sconsigliato a meno di particolari casi) e per la definizione della costante WPLANG, deprecata a partire dalla versione 4 di WordPress (clicca qui per leggere l’articolo originale su Trac).

Vediamo quindi come appare un classico comando wp config create al complet inserito nel terminale:

// Configuriamo il database
wp config create --dbname=nome_db --dbuser=user_db --dbpass=password_db --dbhost=localhost

Step 2 – Installiamo WordPress

Eccoci alla parte finale per completare l’installazione con la CLI di WordPress. Come per il download, utilizzeremo la combinazione wp core con l’aggiunta di install. Anche in questo caso, ci sono delle opzioni, obbligatorie, che permettono di definire il nome del titolo e le credenziali dell’amministratore. Vediamole nella seguente tabella:

--url=sito-esempio.local Imposta l’URL del nuovo sito
--title="Sito di esempio" Imposta il titolo del nuovo sito
--admin_user=admin_esempio Imposta il nome dell’amministratore
--admin_password=pass Imposta la password dell’amministratore
--admin_email=admin@email.esempio Imposta l’email dell’amministratore

Generalmente WordPress manda una email di notifica all’amministratore non appena il processo di installazione è concluso. Per disattivare l’inoltro di email basta aggiungere --skip-email.

Nel terminale il comando completo di opzioni appare così:

// Installiamo WordPress
wp core install --url=esempio.local --title="Sito di esempio" --admin_user=admin --admin_password=cambiami --admin_email=admin@email.esempio

Eseguito il comando avremo il nostro sito WordPress pronto all’uso!

Ricapitoliamo quanto visto fino ad ora e mettiamo insieme in un unico esempio pratico:

// Scarichiamo WP nella directory attuale
wp core download

// Configuriamo il database
wp config create --dbname=nome_db --dbuser=user_db --dbpass=password_db --dbhost=localhost

// Installiamo WordPress
wp core install --url=esempio.local --title="Sito di esempio" --admin_user=admin --admin_password=cambiami --admin_email=admin@email.esempio

Importare ed esportare contenuti

Tra le tante cose che ci permette di fare WP-CLI, una delle più utili è l’importazione e l’esportazione di contenuti da un sito all’altro.

Hai appena visto come installare WordPress da CLI, e giustamente ti potresti chiederti se è possibile sfruttarla per altri task più complessi e impegnativi, come l’import ed export dei contenuti. Ed è infatti possibile, Tramite due comandi molto semplici e potenti al contempo: wp export e wp import.

Questi sfruttano i file in formato WXR (WordPress Extended RSS), che potresti aver avuto modo di conoscerlo se hai mai usato la funzionalità Esporta di WordPress, disponibile dalla Dashboard nel menu Strumenti » Esporta.

Per esportare i contenuti di WordPress da CLI, rechiamoci nella directory principale dell’installazione di WP. Ora lanciamo il comando:

wp export

Come risultato otterremo:

Starting export process...
Writing to file Sites/example/wordpress/example.wordpress.2021-09-15.000.xml
Success: All done with export.

WP-CLI ci informerà che è stato esportato con successo il file .xml, in formato WXR.

Per importare invece basterà usare wp import assieme all’opzione richiesta per gli autori --authors. Quest’ultima accetta 3 tipi di valori:

create Crea un nuovo utente
mapping.csv Mappa gli utenti attuali con quelli esisteti in base ad un csv fornito
skip Salta la creazione / associazione degli autori

Gestione del database

Oltre alla gestione dei contenuti con import e export, una delle funzionalità più importanti è la gestione del database. Come puoi immagine questa parte è molto articolata. Si passa dall’import ed export delle tablelle del database all’esecuzione di vere e proprie query.

Vediamo brevemente tre dei comandi che ci possono tornare più utili e che useremo con maggiore frequenza in contesti di gestione ordinaria di un database WordPRess.

I primi due sono proprio i comandi wp db export e wp db import, che ti permettono rispettivamente di generare un dump del db e salvarlo su un file .sql e di importarlo.

Come abbiamo visto fino ad ora, ci sono sempre opzioni utili a portata di mano! Eccone alcune per wp db export:

--path=<path> Definisci il percorso dove salvare il dump
--ssh=[<scheme>:][<user>@]
<host\|container>
[:<port>][<path>]
Questa opzione permette di eseguire l’operazione attraverso SSH. <scheme> viene fornito nel caso sia verso un container con schema “docker”, “docker-compose” o “vagrant”
--http=<http> Questa opzione permette invece di eseguire l’operazione attraverso collegamento HTTP

Per quanto riguarda wp db import abbiamo delle opzioni obbligatorie e non, riportate di seguito:

<file> Permette di definire il nome del file .sql da importare
--dbuser=<value> Username per mysql
--dbpass=<value> Password per mysql
--<field>=<value> Argomenti extra da passare a mysql
--skip-optimization Salta il processo di ottimizzazione del database

Anche per l’import possono essere utilizzate le opzioni --ssh e --http per eseguire operazioni attraveso i due protocolli.

Il terzo comando che vorrei mostrarti è wp db optimize. Questo non fa altro che eseguire l’utility mysqlcheck con il flag --optimize=true attivo. A sua volta, mysqlcheck ottimizzerà il peso del database riorganizzando lo spazio fisico occupato dalle tabelle per migliorare l’efficienza nell’ accesso ai dati.

Se ti è mai capitato di lavorare con installazioni preesistenti e con un gran quantitativo di dati non ottimizzati, noterai subito la differenza!

Conclusioni

In questo breve articolo ho cercato di raggruppare le informazioni principali per utilizzare la CLI di WordPress, con lo scopo di mostrare come e in che modo può tornarci utile. Tuttavia, WP-CLI è un tool utilizzato non solo da umani. Ad esempio, Molti software sfruttano la CLI di WordPress per permettere di gestire l’installazione da un’interfaccia grafica in modo più rapido e intuitivo.

Uno di questi tool, che utilizzo anch’io, è Local (link al sito https://localwp.com). Se ti interessa saperne di più, puoi leggere il mio articolo: Local WP, come sviluppare serenamente WordPress in locale – (link all’articolo).

Local WP, come sviluppare serenamente WordPress in locale

Local WP è certamente uno dei tool più comodi per avviare, in tempi record e da zero, installazioni di WordPress in locale.

Se invece vuoi sapere di più sulla Cli di WordPress, e magari avere altre guide specifiche, sarò lieto di ricevere il tuo feedback, come sempre, tramite commenti o email!

Di Giovanni

Front-end Developer, WordPress Specialist e Consulente Digitale. Supporto Aziende e Freelance nello sviluppo dei progetti digitali.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *