Interfaccia terminale con comandi WP-CLI per gestione WordPress professionale

La gestione professionale di siti WordPress richiede strumenti che vadano oltre la semplice dashboard amministrativa. WP-CLI rappresenta la soluzione ideale per sviluppatori, agenzie web e sistemisti che desiderano automatizzare operazioni complesse, gestire installazioni multiple e ottimizzare il workflow di sviluppo.

In questa guida completa esploreremo tutto ciò che serve sapere su WP-CLI: dall’installazione ai comandi essenziali, fino alle tecniche avanzate di automazione che possono rivoluzionare il tuo modo di lavorare con WordPress.

Cos’è WP-CLI e perché dovresti usarlo

WP-CLI (WordPress Command Line Interface) è un’interfaccia a riga di comando che consente di gestire installazioni WordPress attraverso il terminale, senza dover accedere al pannello amministrativo. Sviluppato e mantenuto dalla comunità WordPress, è diventato uno standard de facto per la gestione professionale di siti WordPress.

A differenza della dashboard tradizionale, WP-CLI permette di eseguire operazioni complesse con singoli comandi, automatizzare task ripetitivi e integrare WordPress nei flussi di lavoro DevOps. È particolarmente utile quando si gestiscono decine o centinaia di siti WordPress, rendendo possibile ciò che sarebbe impensabile fare manualmente.

Vantaggi di WP-CLI per Sviluppatori e Agenzie

L’utilizzo di WP-CLI offre numerosi vantaggi concreti che giustificano l’investimento di tempo nell’apprendimento:

Velocità ed efficienza: operazioni che richiederebbero minuti attraverso la dashboard possono essere eseguite in pochi secondi. Ad esempio, aggiornare tutti i plugin di un’installazione richiede un singolo comando invece di click multipli.

Automazione: è possibile creare script personalizzati per automatizzare deployment, backup, migrazioni e manutenzione WordPress. Questo si traduce in risparmio di tempo e riduzione degli errori umani.

Gestione batch: quando si amministrano più siti WordPress, WP-CLI permette di applicare modifiche in massa attraverso script, rendendo scalabile la gestione di numerose installazioni.

Debugging avanzato: comandi specifici consentono di diagnosticare problemi, analizzare il database e controllare lo stato del sistema con precisione chirurgica.

Integrazione CI/CD: WP-CLI si integra perfettamente in pipeline di continuous integration e deployment, permettendo test automatici e rilasci controllati.

Quando Usare WP-CLI invece della Dashboard

Non si tratta di sostituire completamente la dashboard WordPress, ma di scegliere lo strumento giusto per il task giusto. WP-CLI è particolarmente indicato quando:

  • Devi gestire più siti WordPress contemporaneamente
  • Hai bisogno di automatizzare operazioni ripetitive
  • Lavori su server remoti via SSH
  • Stai migrando siti tra ambienti diversi
  • Vuoi ottimizzare database di grandi dimensioni
  • Hai necessità di fare search-replace massivi
  • Lavori in team con workflow Git-based
  • Gestisci siti WooCommerce con cataloghi estesi

Per operazioni quotidiane come scrivere articoli, gestire media o configurare plugin con interfacce complesse, la dashboard rimane più pratica.

Installazione e Configurazione di WP-CLI

L’installazione di WP-CLI è un processo semplice che richiede solo pochi minuti. Vediamo come procedere su diversi sistemi operativi.

Requisiti di Sistema

Prima di installare WP-CLI, verifica che il tuo sistema soddisfi i seguenti requisiti minimi:

  • Sistema operativo UNIX-like (Linux, macOS, FreeBSD) o Windows con WSL
  • PHP 7.4 o superiore (consigliato PHP 8.1+)
  • WordPress 5.0 o superiore
  • Accesso SSH al server (per installazioni remote)
  • Permessi di lettura/scrittura sulla directory WordPress

Installazione su Linux/macOS

Il metodo più semplice e raccomandato è scaricare il file Phar e renderlo eseguibile:

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

Verifica che funzioni correttamente:

php wp-cli.phar --info

Rendi il file eseguibile e spostalo in una directory del PATH:

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

Ora puoi usare il comando wp da qualsiasi directory.

Installazione su Windows

Su Windows 10/11, il metodo consigliato è utilizzare Windows Subsystem for Linux (WSL). Una volta installato WSL, segui le istruzioni per Linux riportate sopra.

In alternativa, puoi usare WP-CLI attraverso Git Bash o creare un file batch, ma l’esperienza non sarà ottimale come su sistemi UNIX.

Verifica dell’Installazione

Per confermare che WP-CLI sia installato correttamente, esegui:

wp --info

Dovresti vedere informazioni su PHP, WordPress e WP-CLI. Per testare su un’installazione WordPress esistente, naviga nella directory del sito ed esegui:

wp core version

Questo mostrerà la versione di WordPress installata, confermando che WP-CLI può comunicare correttamente con il tuo sito.

Comandi WP-CLI essenziali per la Gestione quotidiana

Padroneggiare i comandi base di WP-CLI ti permetterà di gestire il 90% delle operazioni quotidiane. Ecco i comandi essenziali che ogni sviluppatore WordPress dovrebbe conoscere.

wp core – Gestione Core WordPress

Il comando wp core gestisce tutte le operazioni relative al core di WordPress.

Scaricare WordPress:

wp core download --locale=it_IT

Questo scarica l’ultima versione di WordPress in italiano nella directory corrente.

Installare WordPress:

wp core install --url=example.com --title="Il Mio Sito" --admin_user=admin --admin_email=email@example.com

Aggiornare WordPress:

wp core update

Per aggiornare anche database e traduzioni:

wp core update-db
wp language core update

Verificare l’integrità dei file core:

wp core verify-checksums

Questo comando è utilissimo per identificare file corrotti o modificati, fondamentale per la sicurezza.

wp plugin – Gestione Plugin

La gestione dei plugin è una delle operazioni più frequenti, e WP-CLI la rende estremamente rapida.

Elencare tutti i plugin installati:

wp plugin list

Installare un plugin:

wp plugin install contact-form-7 --activate

Aggiornare tutti i plugin:

wp plugin update --all

Disattivare e riattivare tutti i plugin (utile per debugging):

wp plugin deactivate --all
wp plugin activate --all

Eliminare plugin disattivi:

wp plugin delete $(wp plugin list --status=inactive --field=name)

wp theme – Gestione Temi

I comandi per i temi seguono una logica simile ai plugin.

Installare un tema:

wp theme install twentytwentyfour --activate

Elencare tutti i temi:

wp theme list

Attivare un tema:

wp theme activate twentytwentyfour

Eliminare temi non utilizzati:

wp theme delete twentytwentytwo twentytwentythree

Mantenere solo i temi necessari riduce la superficie di attacco per vulnerabilità di sicurezza.

wp db – Gestione Database

La gestione del database è un’area dove WP-CLI eccelle, offrendo controllo granulare.

Ottimizzare il database:

wp db optimize

Esportare il database:

wp db export backup.sql

Importare un database:

wp db import backup.sql

Eseguire query SQL:

wp db query "SELECT * FROM wp_options WHERE option_name LIKE 'siteurl'"

Reset completo del database (attenzione, cancella tutto!):

wp db reset --yes

wp user – Gestione Utenti

Gestire utenti da CLI è particolarmente utile quando hai perso l’accesso admin o devi gestire molti account.

Creare un nuovo amministratore:

wp user create nuovo_admin email@example.com --role=administrator --user_pass=password_sicura

Elencare tutti gli utenti:

wp user list

Cambiare password di un utente:

wp user update admin --user_pass=nuova_password

Eliminare utenti spam:

wp user delete $(wp user list --role=subscriber --field=ID) --yes

Comandi Avanzati per Sviluppatori

Oltre ai comandi base, WP-CLI offre funzionalità avanzate che semplificano operazioni complesse.

wp search-replace – Sostituzione in Massa

Uno dei comandi più potenti, essenziale durante le migrazioni e per la realizzazione di siti web professionali.

Cambiare URL del sito:

wp search-replace 'http://oldsite.com' 'https://newsite.com' --dry-run

Il flag --dry-run mostra cosa verrebbe modificato senza applicare le modifiche. Una volta verificato, esegui senza il flag:

wp search-replace 'http://oldsite.com' 'https://newsite.com' --skip-columns=guid

Sostituzioni mirate su tabelle specifiche:

wp search-replace 'testo_vecchio' 'testo_nuovo' wp_posts wp_postmeta

Search-replace con serializzazione (gestisce correttamente array PHP):

wp search-replace 'vecchio' 'nuovo' --all-tables

wp cache – Gestione Cache

Se utilizzi plugin di caching come WP Super Cache o W3 Total Cache:

Svuotare la cache:

wp cache flush

Svuotare cache di oggetti:

wp transient delete --all

Flush cache di Rewrite Rules:

wp rewrite flush

wp cron – Gestione Task Pianificati

WordPress usa un sistema di cron per task pianificati. WP-CLI permette di gestirli efficacemente.

Elencare eventi cron:

wp cron event list

Eseguire tutti gli eventi cron in attesa:

wp cron event run --due-now

Schedulare un evento personalizzato:

wp cron event schedule my_custom_event '+1 hour' --daily

Eliminare un evento specifico:

wp cron event delete my_custom_event

wp scaffold – Generazione Codice

WP-CLI può generare boilerplate code per velocizzare lo sviluppo.

Creare uno skeleton per un plugin:

wp scaffold plugin my-custom-plugin

Generare un Custom Post Type:

wp scaffold post-type libro --label=Libro --textdomain=mio-tema

Creare una tassonomia:

wp scaffold taxonomy genere --post_types=libro

Generare unit tests:

wp scaffold plugin-tests my-plugin

Automazione con WP-CLI: Script e Best Practices

Il vero potere di WP-CLI emerge quando crei script personalizzati per automatizzare workflow complessi.

Creare Script di Deployment

Uno script di deployment automatizza il processo di pubblicazione di modifiche su un server di produzione.

Esempio di deploy.sh:

#!/bin/bash

echo "🚀 Inizio deployment..."

# Backup database
wp db export backup-pre-deploy-$(date +%Y%m%d).sql

# Aggiorna WordPress core
wp core update

# Aggiorna tutti i plugin
wp plugin update --all

# Aggiorna traduzioni
wp language core update
wp language plugin update --all

# Flush cache
wp cache flush
wp rewrite flush

# Ottimizza database
wp db optimize

echo "✅ Deployment completato!"

Rendi lo script eseguibile:

chmod +x deploy.sh

Backup Automatizzati

Crea uno script per backup completi programmabili.

backup.sh:

#!/bin/bash

BACKUP_DIR="/var/backups/wordpress"
SITE_NAME="miosito"
DATE=$(date +%Y%m%d_%H%M%S)

# Crea directory backup se non esiste
mkdir -p $BACKUP_DIR

# Backup database
wp db export $BACKUP_DIR/${SITE_NAME}_db_${DATE}.sql

# Backup files (esclusi uploads per ridurre dimensione)
tar -czf $BACKUP_DIR/${SITE_NAME}_files_${DATE}.tar.gz \
    --exclude='wp-content/uploads' \
    .

# Mantieni solo gli ultimi 7 backup
find $BACKUP_DIR -name "${SITE_NAME}_*" -mtime +7 -delete

echo "✅ Backup completato: ${DATE}"

Aggiungi questo script al crontab per esecuzione automatica:

crontab -e
# Aggiungi questa riga per backup giornaliero alle 2:00 AM
0 2 * * * /path/to/backup.sh

Aggiornamenti Programmati

Script per gestire aggiornamenti multipli con sicurezza.

update-maintenance.sh:

#!/bin/bash

# Attiva modalità manutenzione
wp maintenance-mode activate

# Backup pre-aggiornamento
wp db export backup-before-updates.sql

# Aggiorna tutto
wp core update
wp plugin update --all
wp theme update --all

# Verifica integrità
if wp core verify-checksums; then
    echo "✅ Core integro"
    # Disattiva manutenzione
    wp maintenance-mode deactivate
else
    echo "❌ Problemi rilevati!"
    # Lascia manutenzione attiva e notifica
    exit 1
fi

WP-CLI e WooCommerce: Comandi Specifici

Se gestisci siti e-commerce con WooCommerce, WP-CLI offre comandi dedicati estremamente utili.

Gestione Prodotti da CLI

Elencare prodotti:

wp wc product list

Creare un prodotto:

wp wc product create --name="Maglietta" --type=simple --regular_price=19.99 --user=1

Aggiornare prezzi in batch:

wp wc product update $(wp wc product list --field=id) --sale_price=14.99

Importare prodotti da CSV:

wp wc product import prodotti.csv --user=1

Gestione Ordini e Customer

Visualizzare ordini recenti:

wp wc shop_order list --per_page=20 --orderby=date --order=DESC

Esportare ordini in CSV:

wp wc shop_order export ordini.csv --fields=id,date,status,total

Ricalcolare totali carrello:

wp wc tool run regenerate_thumbnails

Svuotare carrelli abbandonati:

wp db query "DELETE FROM wp_woocommerce_sessions WHERE session_expiry < UNIX_TIMESTAMP()"

La gestione avanzata di WooCommerce tramite CLI è fondamentale per chi ha cataloghi estesi. Se stai cercando supporto per il tuo negozio online, scopri i nostri servizi di realizzazione eCommerce WooCommerce a Bari.

Troubleshooting e Errori comuni

Anche con WP-CLI possono verificarsi problemi. Ecco come risolverli.

Problemi di Permessi

Errore: “This does not seem to be a WordPress installation.”

Soluzione: Verifica di essere nella directory root di WordPress:

pwd
ls wp-config.php

Se i permessi sono errati:

# Imposta proprietà corretta (sostituisci username:group)
sudo chown -R www-data:www-data /path/to/wordpress

# Imposta permessi corretti
find . -type d -exec chmod 755 {} \;
find . -type f -exec chmod 644 {} \;

Errori di Connessione Database

Errore: “Error establishing a database connection”

Verifica credenziali:

wp config get DB_NAME
wp config get DB_USER
wp config get DB_HOST

Testa connessione manualmente:

wp db check

Se il database è corrotto:

wp db repair

Performance e Ottimizzazione

Se WP-CLI è lento:

Disabilita output colorato:

wp --no-color plugin list

Limita output:

wp plugin list --format=ids

Usa cache di opzioni:

# Aggiungi al wp-config.php
define('WP_CLI_CACHE_DIR', '/tmp/wp-cli-cache');

Conclusioni: WP-CLI nel Workflow professionale

WP-CLI non è solo uno strumento tecnico, ma un vero game-changer per chi lavora professionalmente con WordPress. La capacità di automatizzare operazioni ripetitive, gestire multiple installazioni e integrare WordPress in pipeline moderne di sviluppo lo rende indispensabile per agenzie web e sviluppatori seri.

Key Takeaways

  • Efficienza: WP-CLI riduce drasticamente i tempi di gestione WordPress
  • Scalabilità: Gestire 10 o 100 siti diventa ugualmente semplice
  • Automazione: Script personalizzati eliminano lavoro manuale ripetitivo
  • Professionalità: Workflow moderni richiedono strumenti da linea di comando
  • Integrazione: Si adatta perfettamente a stack DevOps e CI/CD

Prossimi Passi

Per approfondire ulteriormente WP-CLI:

  • Pratica costante: Usa WP-CLI quotidianamente anche per operazioni semplici
  • Crea script custom: Automatizza i tuoi workflow specifici
  • Esplora package: Installa estensioni WP-CLI dalla community
  • Contribuisci: Partecipa allo sviluppo open source di WP-CLI
  • Documenta: Condividi script e best practices con il tuo team

La documentazione ufficiale su wp-cli.org è costantemente aggiornata e rappresenta un’ottima risorsa per approfondimenti.


Hai bisogno di supporto per implementare WP-CLI nei tuoi progetti? La nostra web agency a Bari è specializzata in sviluppo WordPress professionale e può aiutarti a ottimizzare il tuo workflow. Contattaci per una consulenza personalizzata.

Gestisci e-commerce WooCommerce a Bari? Scopri come posso aiutarti con la realizzazione siti e-commerce professionali ottimizzati per performance e conversioni.