In questo articolo vedremo quello che può offrirci WP-CLI, lo strumento che ci permette di gestire WordPress direttamente da linea di comando. Vedremo come installare WP-CLI e come utilizzare i comandi per compiere le diverse operazioni: dall’installazione di WordPress all’aggiornamento di plugin e temi, fino alla gestione degli utenti e le operazioni sul database.
Table of Contents
Come installare WP-CLI
Se sei un cliente SupportHost devi sapere che WP-CLI è già installato su tutti i piani, dall’hosting condiviso ai piani hosting WordPress e hosting semidedicato.
Per andare incontro alle esigenze di tutti gli utenti, anche dei più esperti, abbiamo infatti incluso anche nei piani hosting low cost l’accesso SSH e WP-CLI.Tutto quello che devi fare è accedere via SSH al tuo server. Se non sai come fare puoi seguire il nostro articolo sulla connessione SSH.
Per installare WP-CLI basta utilizzare i tre comandi seguenti, inviandoli uno alla volta:
curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar
chmod +x wp-cli.phar
sudo mv wp-cli.phar /usr/local/bin/wp
Nella prima riga abbiamo dato il comando cURL per scaricare WP-CLI.
Il secondo comando rende eseguibile il file e, infine, il terzo lo sposta nella cartella degli eseguibili.
Cos’è WP-CLI
WP-CLI permette di accedere a WordPress da linea di comando. CLI, infatti, significa proprio Command Line Interface ovvero interfaccia da linea di comando, proprio al contrario delle interfacce grafiche (GUI).
Oltre a permetterci di installare WordPress, aggiornarlo, installare nuovi plugin e temi, ma anche esportare o importare il database, WP-CLI ha anche un altro vantaggio.
Con WP-CLI, infatti, è possibile inserire una serie di comandi in uno script e dare avvio a una sequenza di comandi richiamando un singolo script.
Uno dei casi in cui questa funzione potrebbe rivelarsi utile è la creazione di un ambiente di test (staging). Con un singolo script siamo in grado ad esempio di installare WordPress, installare un tema e i plugin che ci servono.
Se abbiamo bisogno di ripetere questa operazione più di una volta, utilizzare uno script anziché eseguire i singoli comandi ci permette di risparmiare molto tempo.
Conoscere la versione di WP-CLI
Per conoscere la versione di WP-CLI installata ti basta dare il comando seguente:
wp cli version
Otterrai un risultato come questo che ti indica quale versione stai utilizzando.
Comandi di WP-CLI
In questa guida esamineremo alcuni dei comandi più comuni che possiamo utilizzare per gestire una moltitudine di aspetti del nostro sito WordPress. Ti ricordo che puoi conoscere tutti i comandi di WP-CLI consultando la documentazione ufficiale (in inglese).
Guarda anche il video tutorial per vedere passo passo come usare WP-CLI:
Ogni comando deve essere preceduto da “wp” ed è seguito da argomenti ed eventuali attributi.
WP-CLI funziona solo nella directory in cui è installato WordPress. Se stai cercando di eseguire un comando nella directory sbagliata vedrai un errore come questo:
Se hai più di un’installazione, assicurati di essere nella directory giusta. Per spostarti nella directory ti basta digitare “cd” seguito dal percorso della directory.
Usare i comandi di WP-CLI
Per conoscere la lista dei comandi basta scrivere:
wp help
Si otterrà così la lista dei comandi e una breve descrizione per ognuno di essi.
Dopo aver consultato la lista sarà possibile chiuderla digitando “q”.
Se vogliamo avere informazioni più dettagliate su un singolo comando ci basta scrivere:
wp help command
Andando a sostituire command con il nome del comando.
Ad esempio wp help db ci darà informazioni sulle funzioni disponibili come creare un nuovo database, eseguire una query e così via.
Scorrendo è possibile vedere anche degli esempi. In questa schermata qui sotto vedi gli esempi su come utilizzare sottocomandi del comando wp db, ma ovviamente anche per gli altri comandi ci saranno degli esempi a cui fare riferimento.
Gestire temi e plugin con WP-CLI
WP-CLI ci permette di ottenere informazioni su plugin e temi installati, ma anche installare nuovi temi o plugin, aggiornare quelli già presenti, disattivarli o cancellarli. Vediamo quali comandi ci permettono di fare queste operazioni.
Lista dei plugin
Per prima cosa possiamo ottenere una lista di tutti i plugin WordPress installati, conoscere il loro stato (attivi o disattivati), la versione attuale e sapere se sono disponibili aggiornamenti.
Per farlo basta usare il comando:
wp plugin list
Otterremo un risultato come questo:
Installare e attivare un plugin
Prima di installare un plugin dobbiamo essere sicuri del nome da utilizzare. Se il nome che utilizziamo non è esatto non saremo in grado di installarlo e saremo avvisati con un errore di questo tipo:
Possiamo utilizzare il comando seguente per effettuare una ricerca e trovare il nome esatto del plugin che ci interessa:
wp plugin search contact-form
Nel nostro caso abbiamo effettuato questa ricerca per conoscere il nome da utilizzare per poter installare Contact Form 7.
Qualsiasi sia il plugin che vuoi cercare ti basterà sostituire nel comando sopra contact-form con il termine o i termini da ricercare (separati da un trattino).
Nota che il nome sarà lo stesso utilizzato nella directory dei plugin WordPress, per cui in alternativa puoi fare una ricerca anche direttamente dal sito e fare riferimento al nome presente nell’URL.
Per installare e attivare un plugin ci basterà quindi utilizzare un comando come questo:
wp plugin install contact-form-7 --activate
Invece nel caso in cui volessi installare un plugin e poi attivarlo successivamente, o riattivare un plugin disattivato ti basterà utilizzare il comando activate, così:
wp plugin activate akismet
Assicurati di inserire il nome del plugin che vuoi attivare, nel nostro caso Akismet.
Si possono anche utilizzare gli attributi per installare una versione specifica di un plugin. Ad esempio nel caso di Contact Form 7 possiamo utilizzare l’attributo version in questo modo:
wp plugin install contact-form-7 --version=5.3.2 --activate
A differenza del comando precedente in questo modo procederemo all’installazione e l’attivazione della versione 5.3.2.
Per disinstallare uno o più plugin possiamo usare il comando unistall:
wp plugin unistall akismet
Aggiornare uno o più plugin
Per aggiornare un plugin ci basta utilizzare questo comando:
wp plugin update seo-by-rank-math
Nel nostro caso abbiamo aggiornato Rank Math SEO, per aggiornare un qualsiasi plugin basta inserire il nome del plugin al posto di seo-by-rank-math.
Possiamo anche aggiornare più di un plugin contemporaneamente utilizzando la stessa funzione. Come in questo caso in cui abbiamo aggiornato due plugin eseguendo una sola volta il comando:
wp plugin update media-cleaner polylang
Non devi fare altro che utilizzare il comando plugin update seguito dai nomi dei plugin che vuoi aggiornare, separando i nomi con uno spazio. Nel caso di questo nostro esempio abbiamo aggiornato Media Cleaner che ci permette di eliminare le immagini non utilizzate e Polylang che ci aiuta a creare un sito WordPress multilingua.
Un’altra possibilità che abbiamo è quella di aggiornare tutti i plugin per i quali è disponibile un aggiornamento:
wp plugin update --all
Disattivare uno o più plugin
Con il comando deactivate è possibile disattivare uno o più plugin da linea di comando con WP-CLI.
Per disattivare un singolo plugin puoi utilizzare il comando che segue, sostituendo akismet con il nome del plugin:
wp plugin deactivate akismet
Se vuoi disattivare più plugin contemporaneamente ti basta indicarne i nomi, così:
wp plugin deactivate akismet seo-by-rank-math
Invece, se vuoi disattivare tutti i plugin dovrai usare questo comando:
wp plugin deactivate --all
Lista dei temi
Con WP-CLI è possibile anche gestire i temi WordPress. Per prima cosa possiamo ottenere l’elenco dei temi installati su WordPress con il comando list in questo modo:
wp theme list
Avremo così la lista dei temi installati, informazioni sul loro stato (attivi o disattivati) e sulla loro versione. Nell’elenco, alla colonna update, ci viene anche indicato se è presente o meno un aggiornamento.
Così come abbiamo visto per i plugin anche per i temi abbiamo la possibilità di installare nuovi temi, attivarli e aggiornarli. Vediamo quali comandi possiamo utilizzare per farlo.
Installare e attivare un tema
Per installare e attivare un nuovo tema possiamo usare questo comando:
wp theme install oceanwp --activate
Possiamo verificare se un tema è installato con il comando che vedi qui:
wp theme is-installed oceanwp
echo $?
Se l’output è 0 il tema è installato, se, invece, è 1 non è installato. In questo nostro esempio il tema Twenty Twenty-One era installato, mentre Astra no.
Aggiornare uno o più temi
Possiamo aggiornare un tema con questo comando:
wp theme update twentytwentyone
Per aggiornare più di un tema ci basta inserire i nomi uno dopo l’altro, così:
wp theme update twentytwentyone twentytwenty
Se, invece, volessimo aggiornare tutti i temi installati possiamo eseguire il comando:
wp theme update --all
Abbiamo anche la possibilità di inserire delle eccezioni che ci permettono di aggiornare tutti i temi presenti escludendone uno. Per farlo ci basterà aggiungere l’attributo –exclude, ecco un esempio:
wp theme update --all --exclude=oceanwp
In questo caso abbiamo aggiornato tutti i temi eccetto OceanWP.
Abilitare o disabilitare un tema su un’installazione multisito
Con WP-CLI oltre a poter disattivare i singoli temi è anche possibile disabilitarli al livello della rete nelle installazioni WordPress multisite.
Per farlo ci basta usare il comando disable e l’attributo –network, come in questo esempio:
wp theme disable oceanwp --network
Nelle installazioni multisito l’amministratore di rete può attivare il tema (o il plugin) sui singoli siti della rete, oppure abilitarli per permettere ai singoli amministratori di attivarli autonomamente.
Abbiamo visto come disabilitare uno o più temi, vediamo, invece come abilitarli. In questo caso ci basterà usare il comando enable come nell’esempio che vedi qui sotto:
wp theme enable astra --network
Così facendo abiliteremo il tema su tutti i siti dell’installazione multisito. Se, invece, volessimo anche attivarlo dovremo usare anche l’attributo activate in questo modo:
wp theme enable astra --network --activate
Installare e aggiornare WordPress con WP-CLI
WP-CLI ci permette di installare WordPress da zero con una serie di comandi che ci permetteranno di eseguire tutti i passaggi:
- scaricare WordPress
- generare il file di configurazione (wp-config.php)
- creare un nuovo database
- completare l’installazione.
wp core download
wp core config --dbname=nomedatabase --dbuser=utente --dbpass=password --dbhost=localhost --dbprefix=wp_
wp db create
wp core install --url=https://ilmiosito.it --title=nomedelsito --admin_user=utente --admin_password=password [email protected]
Rivediamo uno ad uno i comandi per capire a cosa servono.
wp core download ci permette di scaricare l’ultima versione di WordPress.
wp core config serve a generare il file wp-config.php, dovrai inserire i dati di accesso al database. Si tratta delle informazioni che permetteranno di collegare la tua installazione di WordPress al database. In dbhost dovrai specificare l’indirizzo al quale è possibile raggiungere il database. Quando il database è sullo stesso server dei file del sito, potrai inserire localhost, altrimenti dovrai specificare l’indirizzo IP.
wp db create ci permette di creare un database utilizzando i dati specificati nel file wp-config.php, ovvero quelli che abbiamo inserito nel passaggio precedente.
wp core install avvia il processo di installazione di WordPress, dovremo inserire indirizzo, nome del sito e i dati dell’amministratore.
Aggiornare WordPress
Prima di ogni aggiornamento importante è sempre consigliabile creare un backup del sito e del database.Ci sono diversi metodi per creare un backup di WordPress. Per esempio si può procedere con il backup manuale o usare un plugin come UpdraftPlus.
Puoi controllare la disponibilità di aggiornamenti con questo comando:
wp core check-update
In questo caso veniamo avvisati che WordPress è aggiornato all’ultima versione rilasciata. In caso contrario possiamo aggiornare WordPress all’ultima versione disponibile attraverso il comando:
wp core update
Se, invece, vogliamo installare una versione specifica ci basterà utilizzare l’attributo version come in questo esempio:
wp core update --version=5.6.4
Ricordati che mantenere il core, ma anche temi e plugin sempre aggiornati, è importante per tenere sotto controllo la sicurezza di WordPress. Se non puoi occuparti della manutenzione ordinaria del tuo sito, potresti affidarti a una soluzione di WordPress gestito che si fa carico degli aggiornamenti e di ogni aspetto tecnico della gestione.
Ricerca e sostituzione all’interno del database di WordPress
Quando passi da http a https con WordPress o hai deciso di cambiare dominio è necessario andare a sostituire gli URL vecchi con i nuovi nel database.
Alcuni dati, però, vengono memorizzati nel database di WordPress come dati serializzati. Per non corrompere questi dati abbiamo diverse possibilità:
- usare il plugin WP Migrate DB, come abbiamo visto nella guida su come cambiare dominio WordPress
- usare WP-CLI.
Con WP-CLI ci basta usare il comando search-replace in questo modo:
wp search-replace https://sitovecchio.it https://sitonuovo.it
Aggiungere l’opzione –dry-run ci permette di mostrare il risultato dell’operazione di ricerca e sostituzione, senza però rendere effettive le modifiche sul database.
wp search-replace https://sitovecchio.it https://sitonuovo.it --dry-run
È anche possibile esportare un file SQL dopo aver effettuato una ricerca e sostituzione nel database. In questo modo il database del sito non viene modificato, ma le modifiche vengono effettuate solo nel file. Il comando da utilizzare è il seguente:
wp search-replace https://sitovecchio.it https://sitonuovo.it --export=database.sql
Il risultato sarà l’esportazione del database in cui tutti gli URL del vecchio sito saranno sostituiti da quelli del nuovo.
Importazione ed esportazione del database
Esistono diversi metodi per esportare e importare un database, ad esempio si può usare phpMyAdmin, lo strumento che ci permette di gestire i database MySQL.
Per l’importazione e l’esportazione possiamo usare anche WP-CLI.
Possiamo esportare il database con il comando:
wp db export
In questo modo verrà generato un file sql.
Allo stesso modo è possibile importare un database con questo comando:
wp db import wp_database.sql
Affinché il database possa essere importato bisognerà prima caricarlo nella home del sito o specificare il percorso in cui è salvato il file.
Gestione degli utenti con WP-CLI
Possiamo accedere alla lista di tutti gli utenti della nostra installazione di WordPress con un semplice comando:
wp user list
Per creare un nuovo utente ci basta utilizzare il comando user create e inserire i dati necessari, come in questo esempio:
wp user create mario_rossi [email protected] --role=editor --first_name=Mario --last name=Rossi --user_pass=password
In questo caso abbiamo utilizzato il comando user create per creare un nuovo utente. I parametri necessari da utilizzare sono i primi due: “mario_rossi” ovvero l’username dell’utente e il suo indirizzo email.
Abbiamo inoltre specificato il ruolo da assegnare all’utente, nome, cognome e una password.
Nel caso in cui non specifichiamo la password, ne verrà generata una casuale in automatico e ci verrà mostrata nell’output, come in questo esempio:
Possiamo anche aggiornare le informazioni in seguito per gli utenti già esistenti, ad esempio cambiando la password di un utente specifico in questo modo:
wp user update 2 --user_pass=newpassword
Nota che in questo caso dovrai inserire l’ID dell’utente che stai aggiornando subito dopo il comando user update, nel nostro esempio ID=2.
Per eliminare un utente già creato possiamo utilizzare il comando user delete. In questo caso però se vogliamo mantenere i post creati dall’utente che stiamo per eliminare dovremo riassegnarli a un altro utente (di cui conosciamo l’ID). Vediamo come è possibile farlo con un esempio.
Nel nostro caso vogliamo eliminare l’utente mario_rossi con ID=2 e riassegnare i post all’utente pasquale_bianchi il cui ID corrisponde a 1, per farlo utilizziamo questo comando:
wp user delete 2 --reassign=1
Andando a verificare attraverso la dashboard di WordPress i post che prima erano dell’utente che abbiamo eliminato sono stati assegnati a quello da noi scelto.
Gestire i ruoli degli utenti
Come saprai su WordPress è possibile assegnare ad ogni utente un ruolo specifico (amministratore, editor, autore e così via).
Ogni ruolo assicura all’utente determinate capacità come modificare i post, cancellarli o moderare i commenti.
Oltre a permetterci di assegnare i ruoli dalla dashboard (controlla il nostro tutorial WordPress per vedere come fare), possiamo gestire gli utenti anche direttamente dal database. Puoi controllare il nostro articolo su come usare phpMyAdmin per WordPress per vedere come fare. Oppure, naturalmente possiamo usare WP-CLI come vedremo in questo caso.
C’è da aggiungere che, oltre a poter assegnare agli utenti i ruoli predefiniti, WP-CLI ci consente anche di creare nuovi ruoli utente e assegnare delle capacità specifiche. Basta utilizzare il comando che segue:
wp role create emanager "Event Manager" --clone editor
In questo esempio qui sopra abbiamo creato un nuovo ruolo, Event Manager, al quale abbiamo assegnato le stesse capacità del ruolo editor.
Una volta creato un nuovo ruolo con WP-CLI sarà poi possibile anche assegnare il ruolo ad un utente direttamente dalla dashboard. Potrai farlo dall’apposita sezione Utenti, come puoi vedere in questo nostro esempio:
Puoi aggiungere un nuovo ruolo ad un utente già creato possiamo usare il comando user add-role seguito dal nome utente (o ID dell’utente, oppure anche l’indirizzo email), e dal ruolo che vogliamo assegnargli.
Ecco un esempio in cui assegniamo il ruolo di editor all’utente user1:
wp user add-role user1 editor
Possiamo anche aggiungere una o più capacità a un utente già esistente:
wp user add-cap user1 moderate_comments
In questo esempio abbiamo assegnato all’utente user1 la capacità di moderare i commenti.
Per avere una lista di tutti i ruoli basta utilizzare questo comando:
wp role list
Il risultato sarà una lista come quella che vedi qui sotto con tutti i ruoli che è possibile attribuire agli utenti del sito:
Come vedi in questo esempio ai 5 ruoli predefiniti si aggiunge quello personalizzato che abbiamo creato in uno degli esempi precedenti.
Per conoscere tutte le capacità attribuite ad uno specifico ruolo ci basta usare questo comando:
wp cap list editor
Ci basta sostituire editor con il nome di un qualsiasi ruolo per avere le lista della capacità ad esso assegnate.
Se, invece, volessimo avere la lista delle capacità di un singolo utente possiamo usare il comando user list-caps in questo modo:
wp user list-caps user1
Per rimuovere una della capacità assegnate all’utente possiamo utilizzare il comando remove-cap come in questo esempio:
wp user remove-cap user1 delete_posts
In questo esempio l’utente non avrà più l’autorizzazione ad eliminare i post del sito.
Gestire utenti Super Admin in WordPress Multisite
Se hai un’installazione WordPress Multisite, con WP-CLI puoi avere gestire i Super Admin del network. Infatti, ai cinque ruoli predefiniti di WordPress di cui parlavamo prima (administrator, editor, author, contributor e subscriber) si aggiunge un sesto ruolo, quello del Super Admin, riservato solo alle installazioni multisito.
Per ottenere l’elenco degli utenti con questo ruolo puoi usare il seguente comando:
wp super-admin list
Puoi anche attribuire il ruolo di Super Admin ad un utente già esistente, in questo modo:
wp super-admin add user1
Se vuoi revocare i privilegi di un utente ti basta usare il comando remove, in questo modo:
wp super-admin remove user1
In entrambi i casi dovrai inserire il nome dell’utente a cui vuoi garantire i permessi o per il quale vuoi revocarli. In questi nostri esempio il nome utente è user1.
Gestire i post di WordPress con WP-CLI
Un’altra funzione utile di WP-CLI è quella di permetterci di cancellare i post del cestino e di eliminare le revisioni dei post.
Per eliminare tutti i post presenti nel cestino ci basta utilizzare questo comando:
wp post delete $(wp post list --post_status=trash --format=ids)
Se vogliamo eliminare un singolo post senza spostarlo nel cestino possiamo usare il comando seguente:
wp post delete 57 --force
Dovremo sostituire “57” con l’ID del post che vogliamo eliminare definitivamente.
Se, invece, vogliamo cancellare tutte le revisioni possiamo usare questo comando:
wp post delete $(wp post list --post_type='revision' --format=ids)
Modalità manutenzione
Con WP-CLI è anche possibile attivare la modalità manutenzione su WordPress. Per farlo bisogna eseguire questo comando:
wp maintenance-mode activate
Sul sito apparirà un avviso come quello che vedi qui sotto che informa i visitatori della manutenzione in corso.
Per disattivare la modalità manutenzione basterà usare il comando seguente:
wp maintenance-mode deactivate
Se vuoi sapere se la modalità manutenzione è attiva o no, ti basta utilizzare questo comando:
wp maintenance-mode status
Nell’esempio che vedi qui sopra la modalità non era attiva.
Gestione dei Cron
WP-CLI ci permette di vedere la lista dei Cron job di WordPress e di gestirli. Per farlo direttamente dalla dashboard, invece, è necessario un plugin come WP Control.
Ad esempio per vedere la lista dei cron ci basta usare il comando:
wp cron event list
Otterremo così la lista dei cron, come in questo esempio:
Rigenerare le miniature delle immagini
Quando si cambia un tema può essere necessario far sì che WordPress rigeneri le immagini di anteprima. Rigenerando le miniature le immagini verranno caricate correttamente, ovvero nelle dimensioni giuste.
Per farlo con WP-CLI ci basta usare il comando:
wp media regenerate
Dopodiché dovrai confermare digitando “y” (yes), in questo modo tutte le immagini saranno rigenerate.
In alternativa è possibile usare il comando seguente per evitare di dover dare di nuovo conferma:
wp media regenerate --yes
WP-CLI ci permette anche di ottenere una lista di tutte le dimensioni utilizzate, ci basta utilizzare questo comando:
wp media image-size
Avremo una tabella come questa che vedi qui sotto:
Se hai bisogno di rigenerare solo alcune miniature ti basta inserire gli ID delle immagini corrispondenti, come vedi in questo esempio:
wp media regenerate 82 69
Ti basterà inserire i singoli ID che vedi nell’esempio con quelli corrispondenti alle tue immagini, ognuno separato dall’altro da uno spazio.
Conclusioni
WP-CLI ci permette di gestire ogni aspetto della nostra installazione di WordPress direttamente da linea di comando. Le stesse operazioni che si possono fare dalla dashboard (e non solo) possono essere semplificate con dei semplici comandi. Tra le operazioni possibili c’è l’installazione da zero, l’aggiornamento di core, plugin e temi, fino alla creazione di utenti e ruoli utente.
Con WP-CLI è anche possibile intervenire in casi particolari, ad esempio quando è necessario resettare la password di un determinato utente. Un altro caso di utilizzo comune che abbiamo esaminato riguarda la ricerca e sostituzione nel database. Un’operazione indispensabile quando si ha necessità di cambiare dominio.
Che tu sia uno sviluppatore o un webmaster WP-CLI può rivelarsi una risorsa davvero indispensabile. Hai già provato WP-CLI? Trovi che sia intuitivo da utilizzare o hai avuto qualche difficoltà? Fammi sapere nei commenti se vuoi approfondire qualche aspetto che abbiamo tralasciato.
Lascia un commento