{"id":1939,"date":"2026-07-16T10:13:55","date_gmt":"2026-07-16T08:13:55","guid":{"rendered":"https:\/\/studioimmens.com\/wp-cli-gestire-wordpress-da-riga-di-comando\/"},"modified":"2026-07-16T10:13:55","modified_gmt":"2026-07-16T08:13:55","slug":"wp-cli-gestire-wordpress-da-riga-di-comando","status":"publish","type":"post","link":"https:\/\/studioimmens.com\/en\/wp-cli-gestire-wordpress-da-riga-di-comando\/","title":{"rendered":"WP-CLI: gestire WordPress da riga di comando"},"content":{"rendered":"<h2>Cos&#8217;\u00e8 WP-CLI e perch\u00e9 usarlo<\/h2>\n<p>WP-CLI (WordPress Command Line Interface) \u00e8 uno strumento che permette di gestire siti WordPress direttamente dal terminale, senza passare dal pannello di amministrazione. Con pochi comandi puoi installare plugin, aggiornare temi, gestire utenti, eseguire operazioni sul database e automatizzare flussi di lavoro complessi.<\/p>\n<p>Per sviluppatori, amministratori di sistema e chiunque gestisca pi\u00f9 siti WordPress, WP-CLI \u00e8 uno strumento indispensabile. Riduce i tempi di operazioni ripetitive, permette di scriptare processi complessi e funziona perfettamente in ambienti headless come server remoti e CI\/CD.<\/p>\n<h2>Installazione di WP-CLI<\/h2>\n<h3>Su server Linux (via SSH)<\/h3>\n<p>L&#8217;installazione su Linux \u00e8 rapida via terminale. Accedi al server via SSH e scarica il file PHAR ufficiale con curl o wget, rendilo eseguibile e spostalo in una directory del PATH. Dopo l&#8217;installazione, verifica con <code>wp --info<\/code>. L&#8217;intero processo richiede meno di un minuto.<\/p>\n<p>Assicurati che il server abbia PHP 5.6 o superiore installato. WP-CLI richiede anche le estensioni PHP json, dom e mbstring, quasi sempre presenti nelle installazioni standard.<\/p>\n<h3>Su Windows<\/h3>\n<p>Su Windows hai tre opzioni principali. La prima \u00e8 usare il prompt tramite PowerShell con PHP installato localmente. La seconda \u00e8 usare WSL (Windows Subsystem for Linux) e installare WP-CLI come su Linux. La terza \u00e8 usare strumenti come DesktopServer o Local by Flywheel che includono WP-CLI preinstallato.<\/p>\n<p>Se usi XAMPP o WAMP, scarica il file wp-cli.phar nella directory del progetto e usa <code>php wp-cli.phar<\/code> seguito dai comandi. Per comodit\u00e0, crea un alias in PowerShell o un file batch che punti al PHAR.<\/p>\n<h2>Comandi essenziali di WP-CLI<\/h2>\n<h3>Gestione del core WordPress<\/h3>\n<p><code>wp core<\/code> permette di installare, aggiornare e verificare WordPress. Con <code>wp core download<\/code> scarichi l&#8217;ultima versione, con <code>wp core config<\/code> crei il file wp-config.php, con <code>wp core install<\/code> esegui l&#8217;installazione completa. <code>wp core update<\/code> aggiorna WordPress all&#8217;ultima versione disponibile.<\/p>\n<h3>Gestione plugin e temi<\/h3>\n<p><code>wp plugin<\/code> e <code>wp theme<\/code> sono tra i comandi pi\u00f9 usati. Con <code>wp plugin list<\/code> visualizzi tutti i plugin installati con stato e versione. <code>wp plugin install woocommerce --activate<\/code> installa e attiva WooCommerce in un comando. <code>wp plugin update --all<\/code> aggiorna tutti i plugin simultaneamente.<\/p>\n<p>Per i temi: <code>wp theme list<\/code>, <code>wp theme activate blocksy<\/code>, <code>wp theme install generatepress<\/code>.<\/p>\n<h3>Gestione contenuti<\/h3>\n<p>Con <code>wp post<\/code> gestisci articoli e pagine. <code>wp post list<\/code> elenca i post, <code>wp post create --post_title=\"Titolo\" --post_content=\"Contenuto\" --post_status=publish<\/code> crea un nuovo articolo pubblicato. <code>wp post delete 123<\/code> elimina un post.<\/p>\n<p>Per gli utenti: <code>wp user list<\/code>, <code>wp user create<\/code>, <code>wp user add-role<\/code>. <code>wp user meta<\/code> permette di gestire metadati utente avanzati.<\/p>\n<h3>Operazioni sul database<\/h3>\n<p><code>wp db<\/code> \u00e8 un potentissimo strumento per il database. <code>wp db export<\/code> esporta un dump SQL, <code>wp db import file.sql<\/code> lo importa. <code>wp db optimize<\/code> ottimizza le tabelle, <code>wp db repair<\/code> ripara eventuali danni.<\/p>\n<p><code>wp search-replace 'vecchio-dominio.com' 'nuovo-dominio.com' --skip-columns=guid<\/code> \u00e8 il comando fondamentale per cambiare dominio o migrare un sito. Sostituisce tutte le occorrenze di una stringa nel database, gestendo correttamente i serialized array.<\/p>\n<h2>Automatizzare gli aggiornamenti<\/h2>\n<p>Uno degli usi pi\u00f9 pratici di WP-CLI \u00e8 l&#8217;automazione degli aggiornamenti. Crea uno script shell che esegua in sequenza:<\/p>\n<ul>\n<li>Backup del database con <code>wp db export<\/code><\/li>\n<li>Aggiornamento di tutti i plugin<\/li>\n<li>Aggiornamento di tutti i temi<\/li>\n<li>Aggiornamento del core WordPress<\/li>\n<li>Traduzioni con <code>wp language core update<\/code><\/li>\n<\/ul>\n<p>Programma lo script con cron (Linux) o Task Scheduler (Windows) per eseguirlo settimanalmente. Non dimenticare di testare il sito dopo ogni aggiornamento automatico.<\/p>\n<h2>Gestire pi\u00f9 siti WordPress<\/h2>\n<p>WP-CLI pu\u00f2 gestire pi\u00f9 siti WordPress sulla stessa macchina. Usa l&#8217;opzione <code>--path<\/code> per specificare la directory di ogni installazione: <code>wp plugin list --path=\/var\/www\/sito1<\/code>. In alternativa, usa lo strumento WP-CLI SSH per connetterti a siti remoti: <code>wp @remote plugin update --all<\/code>.<\/p>\n<p>Per gestire decine di siti, crea un file di configurazione con alias per ogni sito, cos\u00ec puoi eseguire comandi su tutti i siti con un unico script.<\/p>\n<h2>Creare comandi WP-CLI personalizzati<\/h2>\n<p>Puoi estendere WP-CLI creando comandi personalizzati per il tuo plugin o tema. Crea una classe PHP che estenda WP_CLI_Command e registrala con <code>WP_CLI::add_command()<\/code>.<\/p>\n<p>I comandi personalizzati supportano argomenti posizionali, flag opzionali, documentazione automatica (wp-help) e integrazione con il sistema di logging. Sono ideali per automatizzare task specifici del tuo progetto: importare dati da API esterne, generare report personalizzati, sincronizzare contenuti tra ambienti.<\/p>\n<h2>WP-CLI nei flussi CI\/CD<\/h2>\n<p>In ambienti di deployment continuo, WP-CLI \u00e8 uno strumento fondamentale. Puoi integrarlo in pipeline GitHub Actions, GitLab CI, Jenkins o Bitbucket Pipelines per:<\/p>\n<ul>\n<li>Eseguire <code>wp search-replace<\/code> dopo il deploy per aggiornare gli URL<\/li>\n<li>Importare database di staging con <code>wp db import<\/code><\/li>\n<li>Flushare le regole di rewrite con <code>wp rewrite flush<\/code><\/li>\n<li>Attivare plugin specifici per ambiente con <code>wp plugin activate<\/code><\/li>\n<li>Generare contenuti di test con <code>wp post generate<\/code><\/li>\n<\/ul>\n<p>Assicurati che le credenziali di connessione al database siano gestite tramite variabili d&#8217;ambiente, non hard-coded nei file di configurazione.<\/p>\n<h2>Script pratici per task comuni<\/h2>\n<p>Ecco alcuni script particolarmente utili:<\/p>\n<p><strong>Backup completo del sito:<\/strong> esegue export del database e crea un archivio zip della directory wp-content. Salva il backup con timestamp nella data corrente.<\/p>\n<p><strong>Reset di un ambiente di staging:<\/strong> importa il database di produzione, esegue search-replace, rigenera le miniature, flusha la cache. Prepara un ambiente di staging identico alla produzione in pochi secondi.<\/p>\n<p><strong>Audit di sicurezza:<\/strong> elenca plugin non aggiornati, utenti admin non necessari, temi inutilizzati e file con permessi sbagliati.<\/p>\n<p><strong>Generazione di contenuti demo:<\/strong> crea post, pagine, prodotti WooCommerce e utenti di test per nuovi progetti.<\/p>\n<h2>Conclusione<\/h2>\n<p>WP-CLI trasforma la gestione di WordPress da operazione manuale e ripetitiva a processo automatizzato e scalabile. Che tu gestisca un singolo blog o una rete di centinaia di siti, investire tempo nell&#8217;apprendimento di WP-CLI ripaga molte volte in efficienza e controllo. Installa WP-CLI oggi, sperimenta con i comandi di base e gradualmente integra gli script automatizzati nel tuo flusso di lavoro quotidiano.<\/p>","protected":false},"excerpt":{"rendered":"<p>Cos&#8217;\u00e8 WP-CLI e perch\u00e9 usarlo WP-CLI (WordPress Command Line Interface) \u00e8 uno strumento che permette di gestire siti WordPress direttamente dal terminale, senza passare dal pannello di amministrazione. Con pochi comandi puoi installare plugin, aggiornare temi, gestire utenti, eseguire operazioni sul database e automatizzare flussi di lavoro complessi. Per sviluppatori, amministratori di sistema e chiunque [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":2048,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_gspb_post_css":"","ai_primary_source":"Studio Immens Blog","visibility_scope":"both","ai_summary":"Cos'\u00e8 WP-CLI e perch\u00e9 usarlo WP-CLI (WordPress Command Line Interface) \u00e8 uno strumento che permette di gestire siti WordPress direttamente dal terminale, senza passare dal pannello di amministrazione. Con pochi comandi puoi installare plugin, aggiornare temi, gestire utenti, eseguire operazioni s...","ai_intent":"informative","ai_related_resources":"","ai_priority":5,"ai_entity_type":"Article","ai_is_based_on":"https:\/\/blog.studioimmens.com\/wp-cli-gestire-wordpress-da-riga-di-comando\/","ai_citations":"","ai_mentions":"","ai_speakable_selector":"","ai_chunk_hints":"WP-CLI:, gestire, WordPress, da","footnotes":""},"categories":[40],"tags":[],"ai_visibility":[],"class_list":["post-1939","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-sviluppo-web"],"blocksy_meta":[],"_links":{"self":[{"href":"https:\/\/studioimmens.com\/en\/wp-json\/wp\/v2\/posts\/1939","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/studioimmens.com\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/studioimmens.com\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/studioimmens.com\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/studioimmens.com\/en\/wp-json\/wp\/v2\/comments?post=1939"}],"version-history":[{"count":0,"href":"https:\/\/studioimmens.com\/en\/wp-json\/wp\/v2\/posts\/1939\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/studioimmens.com\/en\/wp-json\/wp\/v2\/media\/2048"}],"wp:attachment":[{"href":"https:\/\/studioimmens.com\/en\/wp-json\/wp\/v2\/media?parent=1939"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/studioimmens.com\/en\/wp-json\/wp\/v2\/categories?post=1939"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/studioimmens.com\/en\/wp-json\/wp\/v2\/tags?post=1939"},{"taxonomy":"ai_visibility","embeddable":true,"href":"https:\/\/studioimmens.com\/en\/wp-json\/wp\/v2\/ai_visibility?post=1939"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}