Gestire WordPress non significa necessariamente lavorare sempre dal pannello /wp-admin/.
Con WP-CLI è possibile amministrare molte funzioni di WordPress direttamente dal terminale: controllare la versione installata, gestire plugin e temi, verificare il database, eseguire backup SQL, avviare WP-Cron, controllare i file del Core e diagnosticare diversi problemi senza utilizzare il browser.
WP-CLI, l’interfaccia a riga di comando dedicata a WordPress, mette a disposizione numerosi comandi per amministrare un’installazione attraverso SSH o terminale.
Per chi gestisce più siti o deve effettuare operazioni tecniche, questo strumento può rendere molte attività più rapide e facilmente ripetibili.
La velocità, però, richiede attenzione.
Un comando eseguito sull’installazione sbagliata o una sostituzione effettuata senza backup può modificare migliaia di record in pochi secondi.
In questa guida vedremo quindi non soltanto i principali comandi da terminale, ma soprattutto come utilizzarli con un metodo sicuro.
In breve: cos’è WP-CLI?
Questo strumento permette di gestire WordPress dalla riga di comando.
Invece di:
browser → wp-admin → menu → funzione → conferma
possiamo, quando appropriato, utilizzare:
SSH → directory WordPress → comando → verifica risultato
Ad esempio:
wp core versionmostra la versione del Core WordPress associata all’installazione sulla quale stiamo lavorando.
Con:
wp plugin listpossiamo invece visualizzare i plugin rilevati da WordPress.
La documentazione ufficiale dei comandi WP-CLI mette a disposizione riferimenti dedicati a Core, plugin, temi, database, cron, utenti, configurazione e molte altre funzioni.
Perché usare WP-CLI?
Il vantaggio principale di WP-CLI non è semplicemente quello di sostituire l’interfaccia grafica.
Lo strumento diventa particolarmente utile quando dobbiamo:
- effettuare controlli rapidamente;
- lavorare su un sito che presenta problemi nel backend;
- gestire molti plugin;
- eseguire operazioni ripetitive;
- verificare il Core;
- interrogare il database;
- eseguire search-replace;
- controllare WP-Cron;
- gestire WordPress tramite script;
- diagnosticare errori.
Se /wp-admin/ non è accessibile a causa di un plugin problematico, ad esempio, la CLI può permettere di disattivarlo dal terminale senza dover necessariamente rinominare manualmente la relativa director
Con WP-CLI puoi gestire dal terminale Core, plugin, temi, utenti, database, WP-Cron, cache, troubleshooting, sicurezza e installazioni Multisite.
WP-CLI e SSH non sono la stessa cosa
I due termini vengono spesso confusi.
SSH permette di collegarsi al server tramite terminale.
La CLI di WordPress è invece uno strumento specifico che viene eseguito all’interno dell’ambiente server per interagire con WordPress.
Il flusso tipico è quindi:
Computer → connessione SSH → server → directory WordPress → comando
La disponibilità di SSH e WP-CLI dipende naturalmente dal servizio hosting e dalla configurazione utilizzata.
Come verificare se WP-CLI è disponibile
Dopo aver effettuato l’accesso tramite terminale, possiamo iniziare con:
wp --infoIl comando mostra informazioni sull’ambiente della CLI, compresi elementi utili come il binario PHP utilizzato e la versione installata.
Un altro controllo molto semplice è:
wp --versionSuccessivamente possiamo verificare WordPress:
wp core versionSe il comando restituisce la versione del Core, WP-CLI sta individuando l’installazione sulla quale stiamo lavorando.
Prima regola: verifica sempre su quale WordPress stai lavorando
Questa è probabilmente la precauzione più importante dell’intera guida.
Su uno stesso account possono esistere:
- sito principale;
- staging;
- vecchio clone;
- sottodominio;
- installazione di sviluppo;
- più WordPress indipendenti.
Prima di eseguire un comando che modifica dati, verifica quindi la directory corrente.
Ad esempio:
pwde:
lspossono aiutare a capire dove ci troviamo.
Possiamo quindi controllare:
wp core versione, quando necessario:
wp option get home
wp option get siteurlSe l’URL restituito non corrisponde al sito sul quale volevamo intervenire, non procediamo con comandi distruttivi o modifiche al database.
È inoltre disponibile il parametro globale --path=<path> per indicare esplicitamente il percorso dell’installazione.
Ad esempio:
wp --path=/percorso/del/sito core versionIl workflow sicuro prima di qualsiasi comando importante
Per operazioni delicate utilizziamo questo principio:
Identifica → Verifica → Backup → Anteprima → Esegui → Controlla
Non tutti i comandi dispongono di una modalità --dry-run, quindi non bisogna aggiungerla automaticamente.
Quando la funzione esiste, come nel caso di wp search-replace o dell’aggiornamento plugin, permette di visualizzare preventivamente cosa accadrebbe senza applicare le modifiche.

Comandi WP-CLI fondamentali
Ecco un primo gruppo di comandi utili per una diagnosi iniziale:
wp --info
wp core version
wp core check-update
wp plugin list
wp theme list
wp user list
wp cron event list
wp db checkNon modificano tutti lo stesso tipo di dati e vanno comunque utilizzati consapevolmente, ma rappresentano una buona base per conoscere lo stato dell’installazione.
Gestire WordPress Core da terminale
Controllare la versione
wp core versionCercare aggiornamenti
wp core check-updateAggiornare WordPress
wp core updatePrima di aggiornare un sito in produzione è comunque consigliabile:
- avere un backup recente;
- verificare plugin e tema;
- utilizzare uno staging WordPress per aggiornamenti importanti;
- controllare il sito dopo l’operazione.
La riga di comando rende più rapido l’aggiornamento, ma non rende automaticamente compatibili plugin, tema e codice personalizzato.
Verificare l’integrità del Core WordPress
Uno dei comandi più interessanti per troubleshooting e sicurezza è:
wp core verify-checksumsIl comando confronta i file del Core con i checksum ufficiali di WordPress.org. Il comando viene eseguito prima del normale caricamento di WordPress, caratteristica particolarmente utile durante alcune verifiche di integrità.
Se tutto corrisponde, viene restituito un risultato positivo.
Se invece vengono individuate differenze, bisogna analizzarle.
Una mancata corrispondenza non significa automaticamente che il sito sia stato compromesso: potrebbe dipendere anche da file modificati, corrotti o da parametri come versione e locale non corretti.
In caso di dubbi non cancellare file alla cieca.
Gestire i plugin da terminale
Visualizzare tutti i plugin
wp plugin listPossiamo controllare:
- nome;
- stato;
- versione;
- disponibilità di aggiornamenti.
Verificare lo stato di un plugin
wp plugin status nome-pluginDisattivare un plugin
wp plugin deactivate nome-pluginQuesto comando può risultare molto utile durante un troubleshooting se un plugin genera un errore che impedisce di utilizzare normalmente il backend.
Attivare un plugin
wp plugin activate nome-pluginControllare prima quali plugin verrebbero aggiornati
La documentazione ufficiale di wp plugin update prevede l’opzione --dry-run.
Possiamo quindi utilizzare:
wp plugin update --all --dry-rune soltanto dopo aver verificato il risultato:
wp plugin update --allSu un sito importante o un WooCommerce è comunque preferibile provare prima gli aggiornamenti in staging.
Gestire i temi da terminale
Per visualizzare i temi:
wp theme listPer conoscere lo stato di uno specifico tema:
wp theme status nome-temaPer attivarlo:
wp theme activate nome-temaPer aggiornare i temi per i quali è disponibile un update:
wp theme update --allUn cambio tema effettuato da terminale modifica comunque il sito reale: non bisogna confondere la facilità del comando con l’assenza di conseguenze sul frontend.
Gestire gli utenti WordPress
Possiamo ottenere l’elenco degli utenti con:
wp user listOppure informazioni relative a uno specifico utente:
wp user get nomeutenteLa CLI permette anche di creare, modificare ed eliminare utenti, ma queste operazioni devono essere utilizzate con particolare cautela, soprattutto su installazioni con eCommerce, membership o più amministratori.
È inoltre buona pratica evitare di inserire password sensibili all’interno di script, cron o file di testo non adeguatamente protetti.
WP-CLI e database WordPress
La gestione del database è una delle aree nelle quali WP-CLI risulta particolarmente potente.
Ed è anche una delle aree nelle quali un errore può avere le conseguenze maggiori.
Prima di modificare il database:
backup prima, comando dopo.
Controllare il database
wp db checkEsportare il database
wp db export backup-wordpress.sqlwp db export utilizza le credenziali definite in wp-config.php ed esegue l’esportazione tramite gli strumenti MySQL previsti dal comando.
Attenzione a dove salvi il backup SQL
Un file SQL può contenere:
- utenti;
- email;
- configurazioni;
- URL;
- dati dei plugin;
- informazioni riservate.
Evitare quindi di lasciare backup SQL scaricabili pubblicamente nella document root.
Quando possibile, salvarli in una posizione non raggiungibile dal Web oppure rimuoverli subito dopo aver completato l’operazione per la quale sono stati creati.
Ottimizzare il database da terminale
Il comando:
wp db optimizeesegue l’ottimizzazione del database attraverso mysqlcheck utilizzando le credenziali presenti nel wp-config.php.
Questo non significa però che risolva automaticamente tutti i problemi di prestazioni WordPress.
Un database lento può dipendere anche da:
- query inefficienti;
- tabelle molto grandi;
- autoload eccessivo;
- plugin;
- transient;
- indici;
- WooCommerce;
- risorse server.
L’ottimizzazione delle tabelle è quindi soltanto uno dei possibili interventi.
Search-replace con WP-CLI
wp search-replace è uno dei comandi più potenti e utili, soprattutto durante migrazioni, cambi dominio o passaggi da HTTP a HTTPS.
Ed è anche uno dei comandi da non eseguire senza aver controllato attentamente i parametri.
Supponiamo di dover sostituire:
https://vecchio-dominio.it
con:
https://nuovo-dominio.it
Prima eseguiamo un dry run:
wp search-replace 'https://vecchio-dominio.it' 'https://nuovo-dominio.it' --all-tables-with-prefix --skip-columns=guid --dry-runIl parametro --dry-run esegue la ricerca e produce il report senza salvare le sostituzioni nel database. Inoltre il comando gestisce i dati PHP serializzati durante il search-replace.
Soltanto dopo aver controllato attentamente il risultato possiamo valutare l’esecuzione reale:
wp search-replace 'https://vecchio-dominio.it' 'https://nuovo-dominio.it' --all-tables-with-prefix --skip-columns=guidPrima dell’operazione è comunque consigliato creare un export del database.
Controllare home e siteurl
Durante migrazioni o problemi di redirect questi due comandi sono particolarmente utili:
wp option get home
wp option get siteurlPermettono anche di verificare rapidamente che la CLI stia puntando all’installazione prevista.
Gestire WP-Cron da terminale
Sono disponibili comandi dedicati a WP-Cron.
Per vedere gli eventi programmati:
wp cron event listPer eseguire gli eventi attualmente scaduti:
wp cron event run --due-nowLa documentazione ufficiale specifica che --due-now esegue gli hook che risultano dovuti in quel momento.
Può essere utile per diagnosticare problemi che coinvolgono:
- attività programmate;
- WooCommerce;
- email;
- elaborazioni in background;
- plugin che utilizzano WP-Cron.
Non bisogna però eseguire indiscriminatamente tutti gli eventi soltanto perché un sito presenta un problema.
Prima individuiamo la causa.
Gestire i transient
Per visualizzare i transient:
wp transient listSe vogliamo eliminare solo quelli scaduti, possiamo utilizzare:
wp transient delete --expiredÈ disponibile anche:
wp transient delete --allche elimina tutti i transient.
Sul sito in produzione preferiamo però l’intervento meno invasivo necessario.
Eliminare indiscriminatamente tutti i transient può costringere WordPress e i plugin a rigenerare dati temporanei e non dovrebbe diventare un’operazione automatica di troubleshooting.
Cache WordPress: attenzione a cosa stiamo realmente svuotando
Il comando:
wp cache flushesegue il flush della object cache WordPress. La documentazione ufficiale avverte inoltre che in un multisite con object cache persistente l’operazione può coinvolgere la cache di tutti i siti della rete e avere un impatto sulle prestazioni.
Questo comando non va confuso automaticamente con il purge della cache pagina di LiteSpeed Cache.
Sono livelli differenti.
WP-CLI e LiteSpeed Cache
Se il plugin LiteSpeed Cache for WordPress è attivo, LiteSpeed mette a disposizione propri comandi da terminale.
Ad esempio:
wp litespeed-purge allesegue il purge delle cache LSCache relative al sito; la documentazione ufficiale LiteSpeed sui comandi CLI prevede anche purge selettivi per URL, categorie, tag e post ID.
È quindi utile distinguere:
wp cache flushObject Cache
da:
wp litespeed-purge allLiteSpeed Cache
La distinzione è importante durante il troubleshooting perché “svuotare la cache” può significare operazioni tecnicamente differenti.
Modalità manutenzione da terminale
Da terminale è possibile controllare lo stato della modalità manutenzione:
wp maintenance-mode statusAttivarla:
wp maintenance-mode activatee disattivarla:
wp maintenance-mode deactivateQuesti comandi fanno parte ufficialmente del gruppo wp maintenance-mode.
Possono risultare utili durante interventi pianificati o per diagnosticare un sito rimasto bloccato in modalità manutenzione.
WP-CLI quando un plugin provoca un errore PHP
Uno scenario tipico è:
aggiornamento plugin → errore critico → wp-admin non raggiungibile
Se la CLI riesce ancora a inizializzare WordPress, possiamo controllare:
wp plugin liste disattivare il plugin sospetto:
wp plugin deactivate nome-pluginSe invece il problema si verifica proprio durante il caricamento di un plugin o del tema, sono disponibili parametri globali utili come:
--skip-pluginse:
--skip-themesAd esempio:
wp plugin list --skip-plugins --skip-themesLa documentazione ufficiale specifica che --skip-plugins evita il caricamento dei plugin normali, mentre i mu-plugin continuano comunque a essere caricati.
Questo dettaglio è importante durante una diagnosi.
Utilizzare --debug
Quando la CLI restituisce un errore poco chiaro possiamo aumentare le informazioni disponibili con:
wp --debug core versionoppure applicare --debug al comando che stiamo analizzando.
È disponibile il parametro globale --debug proprio per mostrare informazioni aggiuntive, inclusi errori PHP e dettagli delle fasi di bootstrap.
Non significa però che tutte le righe visualizzate siano necessariamente la causa primaria del problema.
Bisogna distinguere:
- warning;
- notice;
- deprecated;
- fatal error;
- errore database;
- errore della CLI.
WP-CLI utilizza una versione PHP diversa dal sito
Questo è un problema che può creare molta confusione.
Il PHP utilizzato dal sito Web e quello utilizzato dalla shell non devono essere necessariamente lo stesso binario.
Per controllare l’ambiente della CLI:
wp --infoe per verificare PHP della shell:
php -vSe la CLI utilizza una versione PHP differente rispetto al sito, un plugin può funzionare nel browser e generare invece warning o errori dalla CLI, o viceversa.
Xlogic dispone già di una guida KB specifica dedicata al problema WP-CLI: PHP binary version differs from website, utile per approfondire questo scenario.
Non bisogna hardcodare un percorso PHP preso da una guida generica: il percorso del binario dipende dall’ambiente server.
“This does not seem to be a WordPress installation”
Un altro errore molto comune compare quando la CLI non trova una valida installazione WordPress nel percorso corrente.
Prima di fare altro verifica:
pwd
lse cerca il percorso corretto dell’installazione.
Possiamo quindi utilizzare:
wp --path=/percorso/corretto core versionLa KB Xlogic contiene già diverse guide dedicate agli errori da riga di comando, compresi quelli relativi alla directory dell’installazione.
Error establishing a database connection
Se la CLI restituisce:
Error establishing a database connection
non significa necessariamente che MySQL sia offline.
Le cause possono coinvolgere anche:
- credenziali in
wp-config.php; - host database;
- database inesistente;
- utente MySQL;
- permessi;
- configurazioni specifiche dell’ambiente CLI.
Per questo problema Xlogic dispone di una guida dedicata WP-CLI Error establishing a database connection.
Prima di modificare password o database è necessario identificare la causa reale.
WP-CLI e WordPress Multisite
WP-CLI è particolarmente utile nelle installazioni Multisite.
Possiamo, ad esempio, visualizzare i siti della rete:
wp site listPer molti comandi possiamo specificare il sito da utilizzare attraverso:
--url=https://esempio.it/sito/--url è un parametro globale e, in ambiente multisite, permette di indicare il sito target.
Su una rete multisite la verifica del target diventa ancora più importante: un comando apparentemente corretto può essere eseguito sul sito sbagliato se non specifichiamo adeguatamente il contesto.
I comandi WP-CLI più utili da ricordare
| Obiettivo | Comando |
|---|---|
| Informazioni ambiente CLI | wp --info |
| Versione WordPress | wp core version |
| Aggiornamenti Core | wp core check-update |
| Integrità Core | wp core verify-checksums |
| Elenco plugin | wp plugin list |
| Anteprima update plugin | wp plugin update --all --dry-run |
| Elenco temi | wp theme list |
| Elenco utenti | wp user list |
| Controllo database | wp db check |
| Backup database | wp db export backup.sql |
| Ottimizzazione database | wp db optimize |
| Eventi WP-Cron | wp cron event list |
| Cron scaduti | wp cron event run --due-now |
| Transient scaduti | wp transient delete --expired |
| Object Cache | wp cache flush |
| LiteSpeed Cache | wp litespeed-purge all |
| Stato manutenzione | wp maintenance-mode status |
La documentazione ufficiale mantiene il riferimento completo dei comandi disponibili.
Cosa NON fare con WP-CLI
Non eseguire comandi sul sito senza verificarlo
Prima controlla percorso, home e siteurl.
Non modificare il database senza backup
Un search-replace errato può interessare un numero molto elevato di record.
Non utilizzare --dry-run dove non esiste
Ogni comando dispone dei propri parametri. Verifica la documentazione anziché supporre che una determinata opzione sia universale.
Non lasciare backup SQL pubblicamente accessibili
Un dump del database può contenere informazioni sensibili.
Non cancellare tutto per “provare”
Transient, cache, plugin e database devono essere gestiti in base alla diagnosi.
Non eseguire WP-CLI come utente sbagliato soltanto per aggirare i permessi
L’esecuzione con ownership diversa da quella del sito può creare file con proprietari o permessi non coerenti.
Non aggiornare un WooCommerce critico alla cieca
Prima utilizza backup e staging.
Un workflow WP-CLI consigliato
Per un intervento importante adottiamo questa sequenza:
1. Identifica il sito
pwd
wp option get home
wp option get siteurl2. Controlla l’ambiente
wp --info
wp core version3. Controlla plugin e tema
wp plugin list
wp theme list4. Crea il backup necessario
wp db export backup-prima-intervento.sql5. Esegui un dry run quando disponibile
Ad esempio:
wp plugin update --all --dry-runoppure:
wp search-replace 'vecchio' 'nuovo' --dry-run6. Applica l’operazione
Soltanto dopo aver verificato l’anteprima.
7. Controlla il risultato
Backend, frontend, log, database e funzionalità critiche.
Il comando corretto è importante, ma il metodo con il quale viene utilizzato lo è ancora di più.
WP-CLI su hosting Xlogic
La Knowledge Base Xlogic dedicata a WP-CLI include numerose guide tecniche su PHP CLI, database, parametri, package e individuazione dell’installazione.
Questo articolo ha invece l’obiettivo di costituire un punto di partenza generale: capire lo strumento, utilizzare i comandi principali e soprattutto adottare un metodo sicuro prima di intervenire su un WordPress in produzione.
Quando SSH e la CLI sono disponibili sul servizio utilizzato, il terminale può diventare uno strumento molto efficace per la gestione e il troubleshooting di WordPress. Per un ambiente ottimizzato puoi consultare anche i piani Hosting WordPress Xlogic.
Domande frequenti su WP-CLI
Cos’è WP-CLI?
È l’interfaccia a riga di comando per WordPress e permette di gestire numerose funzioni del CMS dal terminale senza utilizzare necessariamente il pannello di amministrazione.
WP-CLI è uguale a SSH?
No. SSH permette di collegarsi al server, mentre la CLI è uno strumento specifico per amministrare WordPress dalla riga di comando.
Come verifico se WP-CLI è installato?
Puoi utilizzare:
wp --infooppure:
wp --versionPosso aggiornare i plugin con WP-CLI?
Sì. Ad esempio:
wp plugin update --allLa funzione supporta anche --dry-run per visualizzare preventivamente i plugin che verrebbero aggiornati.
Posso creare un backup del database con WP-CLI?
Sì:
wp db export backup.sqlÈ importante conservare il file SQL in un’area sicura e non lasciarlo pubblicamente scaricabile.
WP-CLI gestisce correttamente i dati serializzati durante un search-replace?
Il comando ufficiale wp search-replace gestisce i dati PHP serializzati durante l’operazione e dispone dell’opzione --dry-run per effettuare un’anteprima.
wp cache flush svuota LiteSpeed Cache?
Non necessariamente. wp cache flush riguarda l’object cache WordPress, mentre LiteSpeed Cache dispone di propri comandi, tra cui wp litespeed-purge all.
Posso utilizzare WP-CLI se wp-admin non funziona?
In molti casi sì. Se WordPress e l’ambiente CLI riescono ancora a inizializzarsi, lo strumento può essere utilizzato per diagnosticare il problema o, ad esempio, disattivare un plugin. In caso di errori durante il bootstrap possono essere utili anche --skip-plugins, --skip-themes e --debug.
È sicuro utilizzare WP-CLI?
È uno strumento amministrativo potente. La sicurezza dell’operazione dipende dal comando, dai permessi e dal metodo utilizzato. Prima di interventi importanti è opportuno identificare correttamente il sito, creare un backup, utilizzare lo staging quando necessario e verificare l’output dei comandi.
Conclusioni
WP-CLI permette di gestire WordPress in modo rapido e preciso direttamente dal terminale.
Con pochi comandi possiamo controllare Core, plugin, temi, database, utenti, WP-Cron, transient, modalità manutenzione e cache.
Il vero vantaggio, però, non consiste nel digitare più velocemente ciò che potremmo fare dal browser.
La riga di comando diventa particolarmente utile quando viene inserita in un processo ordinato:
Identifica → Verifica → Backup → Anteprima → Esegui → Controlla
Prima di ogni operazione importante dobbiamo sapere esattamente:
- quale WordPress stiamo modificando;
- quale PHP sta utilizzando WP-CLI;
- quali dati verranno interessati;
- se esiste un backup recente;
- se il comando dispone di un dry run;
- come verificare il risultato.
Utilizzato in questo modo, diventa uno degli strumenti più efficaci per la gestione tecnica e il troubleshooting di WordPress.












