Indice
Cos’è WP-CLI?
WP-CLI è un’interfaccia a riga di comando sviluppata per WordPress. Pensato per gli sviluppatori come strumento per la gestione di siti WP direttamente dal prompt dei comandi, senza l’uso del browser e quindi il bisogno di fare il login su WordPress. WP-CLI non è solo un’alternativa al pannello admin tradizionale. Questo tool consente di eseguire task più complesse non presenti nell’interfaccia WordPress, come le operazioni cumulative e la cancellazione dei dati transient (i record temporanei del database). WP-CLI rende accessibili anche altre azioni che solitamente richiederebbero l’installazione di uno o più plugin. Attraverso questo strumento è possibile interagire direttamente anche con più siti web allo stesso tempo e aggiungere o rimuovere utenti, categorie, post e commenti. Si possono inserire velocemente dati di prova e resettare le password. Un’altra funzionalità molto comoda è la possibilità di sostituire tutti i link interni per adattarli al cambiamento strutturale delle URL. Prima dell’installazione, è importante verificare i requisiti minimi per il corretto funzionamento dell’interfaccia. Sono infatti necessari PHP 5.3.29 o successivo e WordPress 3.7 o successivo. L’ambiente UNIX-like (Linux, OS X o FreeBSD) è preferibile, poiché Windows è supportato solo parzialmente. In quest’ultimo caso PHP andrebbe installato manualmente, perché non disponibile come impostazione predefinita sulla riga di comando. In alternativa, si potrebbero usare altri strumenti a riga di comando come Cygwin, in grado di simulare le funzionalità Linux su Windows. La sintassi è semplice: si basa su comandi e sottocomandi. I comandi rimandano alla sezione di WordPress sulla quale si vuole lavorare. I sottocomandi sono le azioni da eseguire su date sezioni. Ad esempio, nella stringa wp post delete 471, post è il comando (la sezione è quella dei post), mentre delete 471 sarà il sottocomando (si richiede di eliminare il post, in questo caso quello con ID pari a 471). Esistono poi le opzioni e i parametri, ovvero le impostazioni che possono essere applicate sui sottocomandi. Sia le opzioni che i parametri vengono preceduti da due trattini (es. –option).
Creazione e sviluppo di WP-CLI
WP-CLI è stato creato nel 2011 da Andreas Creten e Scribu, pseudonimo di Cristi Burcă. Il nome dell’interfaccia è composto da WP, sigla per WordPress, e CLI ovvero Command-Line Interface (in italiano Interfaccia a riga di comando). Questo strumento è stato considerato fin da subito un elemento essenziale per la gestione di siti WordPress ed è supportato ufficialmente dallo stesso CMS a partire dal 2016. Grazie alle sue funzionalità, è diventato addirittura un requisito per altri progetti open source come Bedwork, Trellis e Vccw. Anch’esso nato come progetto open source, nell’aprile 2014 WP-CLI passa ufficialmente sotto la gestione di Daniel Bachhuber, un collaboratore di Scribu dal 2013. Dopo aver sviluppato attivamente progetti e plugin per diversi anni, Cristi Burcă ammette, tramite un post pubblicato su wp-cli.org e sul suo blog personale, di aver smesso di usare e di collaborare con WordPress già dal 2012. Burcă motiva il cambiamento di rotta sia per la necessità di esplorare e conoscere altri CMS, ma anche per via di alcune specifiche tecniche, a suo giudizio quasi obsolete. Tuttavia, si è dichiarato consapevole e felice di affidare il progetto ad un esperto sviluppatore WordPress. Dal gennaio del 2017, Alain Schlesser co-mantiene l’ecosistema WP-CLI, curandone quindi il framework, i comandi bundle e tutte le proprietà web correlate. L’8 agosto 2018 viene rilasciato WP-CLI v2, sviluppato grazie ad un team di 57 collaboratori, con l’intento di soddisfare più di 340 pull request fatte da sviluppatori da tutto il mondo. Tra le numerose novità, sono stati introdotti nuovi comandi per la gestione degli alias e della maintenance mode. È stata inoltre rinominata una piccola parte dei metodi, delle proprietà e delle funzioni per rendere WP-CLI più intuitivo e veloce. Oltre a quanto già detto, con WP-CLI v2 il requisito minimo PHP è stato alzato a PHP 5.4.
Perché usare WP-CLI?
WP-CLI è uno strumento intuitivo e potente, che permette di controllare pienamente un sito WordPress, velocizzando notevolmente le interazioni sviluppatore-sito. In particolare, usando gli script bash, è possibile eseguire con un singolo comando una notevole sequenza di azioni. Per riassumere, WP-CLI consente di: – Scaricare, installare e aggiornare qualsiasi versione di WordPress grazie al comando core. – Installare e aggiornare temi e plugin rispettivamente tramite i comandi theme e plugin, anche su più client contemporaneamente.
– Creare e gestire i temi child (o temi figli). A partire dal tema parent (tema genitore) già esistente in WordPress, il tema figlio eredita tutte le sue caratteristiche e le sue funzionalità, ma può implementarlo senza bisogno di riscrivere sul tema originale.
– Fare un elenco di tutti i plugin e verificare il loro status (A per attivo, I per inattivo e UA per aggiornamento disponibile).
– Caricare file, pubblicare post e commenti in blocco e non singolarmente. I post creati verranno salvati di default come bozza, ma possono anche essere pubblicati immediatamente. In questo modo si eviterà di eseguire ripetutamente le stesse azioni e sarà più facile e veloce creare siti test. WP-CLI diventa particolarmente utile anche per quanto riguarda la moderazione dei commenti: i diversi sottocomandi permettono di creare, eliminare e modificare tutti i commenti presenti sotto i post in poco tempo.
– Fare il backup dei database, ripristinare i database già esistenti e sostituire qualsiasi stringa con db, export ed import.
– Creare utenti e cambiarne i permessi, le password e qualsiasi altra informazione.
– Fare ricerche e sostituzioni nel database.
– Gestire il network WordPress Multisite. In caso di esecuzione di più di un sito sulla stessa rete, WP-CLI permette di specificare il sito su quale eseguire il comando, grazie al parametro URL globale.
– Creare i propri pacchetti ed estendere le funzionalità di WP-CLI. Quelle elencate sono solo le funzioni più basiche: con WP-CLI è ovviamente possibile eseguire azioni anche più complesse e specifiche come la concatenazione di comandi multipli e la gestione da remoto tramite SSH (Secure Shell). Per visualizzare la lista dei comandi e dei sottocomandi WP-CLI disponibili basta digitare sul prompt il comando wp help o semplicemente wp. La lista completa è disponibile anche su WordPress.org. In conclusione, WP-CLI si è rivelato fin da subito uno strumento molto utile agli sviluppatori, siano essi esperti che alle prime armi. WP-CLI è molto apprezzato per la sua intuitività e le infinite possibilità di personalizzazione, ma soprattutto per la capacità di automatizzare processi lunghi e ripetitivi.
Da sottolineare che i comandi di wp-cli vanno eseguiti tutti con “wp” + “comando” oppure “parametro” e ci si deve trovare nella cartella dove è presente wordpress. Vanno eseguiti tutti da SSH. Di seguito alcuni esempi su alcuni comandi basilari. Una volta fatto il login tramite SSH
wp --info
il risultato sarà simile a questo
wp --version
per verificare la versione di wp-cli
wp core version
e si avrà un risultato come questo
wp help
si avrà una lista dei comandi utilizzabili
wp theme list
e per i plugin
wp plugin list
ed il risultato sarà simile a questo
wp <parametro> install <pacchetto> wp <parametro> activate <pacchetto> wp <parametro> delete <pacchetto>
ecco un esempio pratico
wp post list
si otterà la lista dei post
wp post create --post_title='<titolo>' --post_content='<contenuto>' --post_status='<stato>'
Dove <titolo> indica il titolo del post <contenuto> indica il contenuto del post <stato> indica se è pubblicato, protetto, bozza o altro. Ecco un esempio
wp post create --post_title='Ciao lettore!' --post_content='Stai leggendo un articolo scritto con wp-cli' --post_status='publish'
anche la modifica è possibile. Dopo aver lanciato il comando per avere la lista degli articolo basta lanciare
wp post update <ID> --post_content='<contenuto>' --post_status='<stato>'
Dove <ID> indica l’ID del post <contenuto> indica il contenuto del post <stato> indica se è pubblicato, protetto, bozza o altro.
wp post update 9 --post_content='Ora questo articolo è modificato' --post_status='publish'
wp post delete <ID>
si può cancellare il post
Una lista completa dei comandi di wp-cli può essere visionata sul sito di wordpress.org