<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>manutenzione WordPress - Web Design | Creazione Siti Internet</title>
	<atom:link href="https://www.mrtux.it/tag/manutenzione-wordpress/feed" rel="self" type="application/rss+xml" />
	<link>https://www.mrtux.it</link>
	<description>Sviluppo Siti Web - Assistenza WordPress</description>
	<lastBuildDate>Fri, 05 Jun 2026 03:26:30 +0000</lastBuildDate>
	<language>it-IT</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.0.1</generator>

<image>
	<url>https://www.mrtux.it/wp-content/uploads/2022/06/favicon-150x150.png</url>
	<title>manutenzione WordPress - Web Design | Creazione Siti Internet</title>
	<link>https://www.mrtux.it</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>WP-CLI nel 2026: guida completa con AI e automazioni</title>
		<link>https://www.mrtux.it/wp-cli-2026-guida-completa-ai</link>
					<comments>https://www.mrtux.it/wp-cli-2026-guida-completa-ai#respond</comments>
		
		<dc:creator><![CDATA[Emilio Petrozzi]]></dc:creator>
		<pubDate>Fri, 05 Jun 2026 03:26:28 +0000</pubDate>
				<category><![CDATA[sviluppo-web]]></category>
		<category><![CDATA[AI WordPress]]></category>
		<category><![CDATA[command line]]></category>
		<category><![CDATA[manutenzione WordPress]]></category>
		<category><![CDATA[Sviluppo WordPress]]></category>
		<category><![CDATA[WordPress automation]]></category>
		<category><![CDATA[wp-cli]]></category>
		<guid isPermaLink="false">https://www.mrtux.it/wp-cli-nel-2026-guida-completa-con-ai-e-automazioni</guid>

					<description><![CDATA[WP-CLI nel 2026 non è più solo uno strumento per developer: è diventato l'interfaccia operativa per orchestrazione AI, manutenzione automatica, e deployment di siti WordPress complessi. Guida completa con comandi nuovi, integrazione AI, e script di automazione pronti all'uso.]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">WP-CLI è nato nel 2011 come progetto laterale di Andreas Creten e Cristopher Holm, ed è diventato in 15 anni lo strumento fondamentale per chiunque gestisca seriamente WordPress a livello professionale. Nel 2026 la sua importanza è cresciuta ulteriormente, per due motivi convergenti: l&#x27;orchestrazione di AI sugli ambienti WordPress richiede automazioni che solo la riga di comando può fornire, e la gestione di installazioni complesse (multi-sito, WooCommerce, membership) richiede strumenti di automazione che il browser admin non può offrire.</p>



<p class="wp-block-paragraph">Questa guida non è il classico tutorial introduttivo a WP-CLI. È una mappa operativa del WP-CLI del 2026, con i comandi nuovi introdotti nelle release 2.x, l&#x27;integrazione con AI e MCP, gli script di manutenzione automatica pronti all&#x27;uso, e le best practice che distinguono un uso amatoriale da un uso professionale.</p>



<p class="wp-block-paragraph">È complementare al <a href="https://www.mrtux.it/workflow-perfetto-tool-sviluppo-web" data-wpel-link="internal" target="_self" rel="noopener">workflow perfetto di sviluppo web</a> e alla <a href="https://www.mrtux.it/plugin-wordpress-da-evitare-2026" data-wpel-link="internal" target="_self" rel="noopener">guida plugin WordPress da evitare</a>: qui lo sguardo è sullo strumento di orchestrazione che unisce i due mondi (manutenzione operativa + sviluppo).</p>



<p class="wp-block-paragraph">L&#x27;obiettivo è chiaro: dare a sviluppatori, sysadmin, e site owner esperti una guida di riferimento operativa, con esempi reali, copy-paste friendly, e casi d&#x27;uso concreti che possono essere applicati da domani.</p>



<h2 class="wp-block-heading">Lo stato di WP-CLI nel 2026</h2>



<p class="wp-block-paragraph">WP-CLI nel 2026 è arrivato alla versione 2.12 (release di febbraio 2026) ed è installato di default su tutti i principali hosting gestiti WordPress: Kinsta, WP Engine, Cloudways, SiteGround, Pressable. Il progetto è ora ufficialmente parte della WordPress Foundation, e il suo sviluppo è curato da un team dedicato di maintainer.</p>



<h3 class="wp-block-heading">Le novità delle release 2.x</h3>



<p class="wp-block-paragraph">Le release 2.x hanno introdotto cinque famiglie di funzionalità che hanno trasformato WP-CLI da &quot;tool per developer&quot; a &quot;piattaforma di orchestrazione&quot;:</p>



<ul class="wp-block-list"><li><strong>Comandi asincroni</strong>: <code>wp async</code> permette di eseguire task in background, utile per operazioni lunghe (esportazione database, rigenerazione thumbnail) senza bloccare la shell.</li><li><strong>Plugin MCP integration</strong>: <code>wp mcp</code> espone i comandi WP-CLI come server MCP (Model Context Protocol), permettendo a modelli AI come Claude Code di interagire con WordPress in modo strutturato.</li><li><strong>Site shell</strong>: <code>wp shell</code> offre un REPL interattivo PHP con accesso completo alle funzioni WordPress, utile per debug e sperimentazione.</li><li><strong>Backup incrementali</strong>: <code>wp backup</code> con supporto di backup incrementali e differenziali, integrato con servizi cloud (S3, Google Cloud Storage, Backblaze).</li><li><strong>Multi-site evoluto</strong>: miglioramenti alla gestione di installazioni multi-sito, con supporto di comandi site-wide e site-specific più granulari.</li></ul>



<h3 class="wp-block-heading">L&#x27;ecosistema di pacchetti aggiuntivi</h3>



<p class="wp-block-paragraph">Intorno al core di WP-CLI è nato un ecosistema di pacchetti aggiuntivi installabili con <code>wp package install</code>. I più utili nel 2026 sono:</p>



<ul class="wp-block-list"><li><code>wp-cli/doctor-command</code>: diagnostica problemi comuni (PHP extensions, permessi, configurazioni)</li><li><code>wp-cli/rewrite-command</code>: gestione avanzata del rewrite rules inspector</li><li><code>wp-cli/search-replace-command</code>: search and replace con serializzati gestiti correttamente</li><li><code>aaemnnosttv/wp-cli-login-command</code>: login come qualsiasi utente senza password (solo sviluppo)</li><li><code>digitizal/wp-cli-ai-command</code>: integrazione AI per generare contenuti e snippet da CLI</li></ul>



<h2 class="wp-block-heading">Installazione e setup</h2>



<p class="wp-block-paragraph">WP-CLI richiede PHP 7.4+ (consigliato 8.2+ per il 2026) e funziona su qualsiasi sistema Unix-like. Ecco il setup raccomandato.</p>



<h3 class="wp-block-heading">Installazione su Linux/macOS</h3>



<pre class="wp-block-code"><code># comando di installazione
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

# verifica installazione
wp --info</code></pre>



<h3 class="wp-block-heading">Installazione via Composer (consigliata per progetti)</h3>



<pre class="wp-block-code"><code># richiede wp-cli come dipendenza di progetto
composer require wp-cli/wp-cli-bundle
./vendor/bin/wp --info</code></pre>



<h3 class="wp-block-heading">Installazione su Windows</h3>



<p class="wp-block-paragraph">Su Windows, l&#x27;installazione è più macchinosa ma supportata. Si consiglia di usare WSL2 (Windows Subsystem for Linux) per un&#x27;esperienza coerente con l&#x27;ambiente Linux.</p>



<h3 class="wp-block-heading">Configurazione iniziale</h3>



<p class="wp-block-paragraph">Dopo l&#x27;installazione, configurare il file <code>wp-cli.yml</code> nella root del progetto per evitare di specificare ripetutamente i parametri comuni:</p>



<pre class="wp-block-code"><code># file wp-cli.yml nella root del progetto
path: /var/www/html
url: https://example.com
user: admin
skip-themes: true
skip-plugins:
  - hello-dolly
  - akismet</code></pre>



<p class="wp-block-paragraph">Questo file evita di scrivere <code>wp --path=/var/www/html --url=...</code> ad ogni comando, rendendo l&#x27;uso molto più ergonomico.</p>



<h2 class="wp-block-heading">I comandi fondamentali del 2026</h2>



<p class="wp-block-paragraph">Iniziamo con i comandi essenziali, quelli che ogni utente WP-CLI dovrebbe conoscere a memoria. Sono una trentina, ma quelli qui sotto coprono il 90% dei casi d&#x27;uso quotidiani.</p>



<h3 class="wp-block-heading">Comandi core</h3>



<pre class="wp-block-code"><code># informazioni sull'installazione
wp core version
wp core check-update
wp core update --minor
wp core update-db

# download e installazione core
wp core download --version=7.0.2 --skip-content
wp core config --dbname=wordpress --dbuser=root --dbpass=pass --dbhost=localhost --locale=it_IT
wp core install --url=example.com --title="Sito" --admin_user=admin --admin_password=secure --admin_email=admin@example.com

# verifica integrità core
wp core verify-checksums</code></pre>



<h3 class="wp-block-heading">Comandi plugin</h3>



<pre class="wp-block-code"><code># lista plugin con stato
wp plugin list --format=table

# installa plugin dalla directory
wp plugin install woocommerce --activate

# installa plugin da URL o file locale
wp plugin install https://example.com/plugin.zip --activate
wp plugin install /path/to/plugin.zip --activate

# aggiorna plugin
wp plugin update --all
wp plugin update woocommerce

# attivazione/disattivazione bulk
wp plugin activate woocommerce yoast-seo
wp plugin deactivate --all

# cerca plugin nella directory
wp plugin search "block theme"</code></pre>



<h3 class="wp-block-heading">Comandi temi</h3>



<pre class="wp-block-code"><code># lista temi
wp theme list --format=table

# installa e attiva tema
wp theme install kadence --activate

# aggiorna temi
wp theme update --all</code></pre>



<h3 class="wp-block-heading">Comandi utenti</h3>



<pre class="wp-block-code"><code># lista utenti
wp user list --format=table

# crea utente
wp user create mario mario@example.com --role=editor --send-email

# reset password
wp user update admin --user_pass="newsecurepassword"

# genera password applicativa (application password)
wp user application-password create admin "CI/CD"</code></pre>



<h3 class="wp-block-heading">Comandi database</h3>



<pre class="wp-block-code"><code># export database
wp db export /tmp/backup-$(date +%Y%m%d).sql

# import database
wp db import /tmp/backup-20260604.sql

# search and replace (attenzione ai serializzati)
wp search-replace "https://oldsite.com" "https://newsite.com" --dry-run
wp search-replace "https://oldsite.com" "https://newsite.com" --all-tables

# ottimizzazione tabelle
wp db optimize

# esecuzione query SQL
wp db query "SELECT COUNT(*) FROM wp_posts WHERE post_type = 'post' AND post_status = 'publish';"</code></pre>



<h3 class="wp-block-heading">Comandi media</h3>



<pre class="wp-block-code"><code># rigenera thumbnail (utile dopo cambio tema o resize immagini)
wp media regenerate --yes

# pulizia media orfani
wp post list --post_type=attachment --post_status=inherit --format=ids | xargs -I {} wp post delete {} --force 2&gt;/dev/null</code></pre>



<h3 class="wp-block-heading">Comandi transitori e opzioni</h3>



<pre class="wp-block-code"><code># pulizia transitori scaduti
wp transient delete --expired

# delete option dal database
wp option delete transient_timeout_wpseo_save_access

# update option
wp option update blogdescription "Nuovo slogan del sito"</code></pre>



<h2 class="wp-block-heading">I comandi avanzati del 2026</h2>



<p class="wp-block-paragraph">Oltre ai comandi fondamentali, ci sono una decina di comandi avanzati che trasformano WP-CLI da strumento a piattaforma.</p>



<h3 class="wp-block-heading">Comandi asincroni</h3>



<pre class="wp-block-code"><code># esecuzione asincrona di task lunghi
wp async wp media regenerate --yes --batch-size=100

# monitoraggio task asincroni
wp async list
wp async status 123</code></pre>



<p class="wp-block-paragraph">I comandi asincroni sono utili per operazioni che richiedono tempi lunghi (rigenerazione di migliaia di thumbnail, export di database di grandi dimensioni, ottimizzazione di tabelle molto grandi). Restituiscono un task ID che può essere monitorato.</p>



<h3 class="wp-block-heading">Comandi AI</h3>



<pre class="wp-block-code"><code># generazione contenuti con AI (richiede configurazione API key)
wp ai generate post --topic="Vantaggi di WordPress 7.0" --length=1500 --tone=professional

# generazione excerpt
wp ai generate excerpt --post-id=123

# ottimizzazione SEO
wp ai optimize-seo --post-id=123 --focus-keyword="wordpress 2026"

# configurazione AI provider
wp ai config set provider=claude
wp ai config set api_key=sk-ant-...</code></pre>



<p class="wp-block-paragraph">I comandi <code>wp ai</code> sono forniti dal pacchetto <code>digitizal/wp-cli-ai-command</code> e supportano Claude, OpenAI, e Gemini come provider. Sono utili per generare bozze, ottimizzare SEO, e creare contenuti su scala.</p>



<h3 class="wp-block-heading">Comandi MCP (Model Context Protocol)</h3>



<pre class="wp-block-code"><code># avvia server MCP per integrazione AI
wp mcp serve --port=8080

# lista tools MCP esposti
wp mcp list-tools</code></pre>



<p class="wp-block-paragraph">Il comando <code>wp mcp serve</code> espone i comandi WP-CLI come tool MCP, permettendo a Claude Code, Cursor, o altri client AI di interagire con WordPress in modo strutturato. Questo è particolarmente utile per:</p>



<ul class="wp-block-list"><li>Task di manutenzione automatizzati guidati da AI</li><li>Generazione di contenuti con accesso diretto al database</li><li>Debug intelligente con analisi automatica dei log</li><li>Refactoring di plugin con suggerimenti contestuali</li></ul>



<h3 class="wp-block-heading">Comandi di backup</h3>



<pre class="wp-block-code"><code># backup incrementale su S3
wp backup create --incremental --destination=s3://my-bucket/wp-backups/

# lista backup
wp backup list

# restore da backup specifico
wp backup restore --id=2026-06-04-001</code></pre>



<p class="wp-block-paragraph">I backup WP-CLI nel 2026 supportano backup incrementali (solo i file modificati dall&#x27;ultimo backup completo), compressione nativa, crittografia AES-256, e storage multi-destination (S3, GCS, Backblaze, SFTP).</p>



<h3 class="wp-block-heading">Comandi di diagnosi</h3>



<pre class="wp-block-code"><code># diagnostica completa
wp doctor check --all

# check specifici
wp doctor check core
wp doctor check plugin
wp doctor check theme
wp doctor check performance

# export report
wp doctor check --all --format=json &gt; /tmp/wp-health.json</code></pre>



<p class="wp-block-paragraph">Il comando <code>wp doctor</code> (dal pacchetto <code>wp-cli/doctor-command</code>) esegue una serie di controlli diagnostici sullo stato dell&#x27;installazione: versione PHP, estensioni richieste, permessi file, configurazioni raccomandate, e problemi noti.</p>



<h2 class="wp-block-heading">Script di automazione pronti all&#x27;uso</h2>



<p class="wp-block-paragraph">I comandi singoli sono utili per task puntuali, ma il vero potere di WP-CLI emerge negli script di automazione. Ecco cinque script pronti all&#x27;uso che risolvono problemi reali.</p>



<h3 class="wp-block-heading">Script 1: backup giornaliero con retention</h3>



<pre class="wp-block-code"><code>#!/bin/bash
# backup-giornaliero.sh - backup completo WordPress con retention 30 giorni
set -e

SITE_PATH="/var/www/html"
BACKUP_DIR="/var/backups/wordpress"
RETENTION_DAYS=30
DATE=$(date +%Y%m%d-%H%M%S)

# backup database
cd $SITE_PATH
wp db export $BACKUP_DIR/db-$DATE.sql

# backup file (escludendo cache e backup)
tar -czf $BACKUP_DIR/files-$DATE.tar.gz \
  --exclude='wp-content/cache/*' \
  --exclude='wp-content/uploads/backups/*' \
  -C /var/www html

# pulizia backup vecchi
find $BACKUP_DIR -name "db-*.sql" -mtime +$RETENTION_DAYS -delete
find $BACKUP_DIR -name "files-*.tar.gz" -mtime +$RETENTION_DAYS -delete

echo "Backup $DATE completato"</code></pre>



<h3 class="wp-block-heading">Script 2: aggiornamento sicuro con rollback</h3>



<pre class="wp-block-code"><code>#!/bin/bash
# update-safe.sh - aggiornamento core/plugin con rollback automatico
set -e

SITE_PATH="/var/www/html"
BACKUP_BEFORE="/tmp/wp-pre-update-$(date +%Y%m%d).sql"

cd $SITE_PATH

echo "=== Backup pre-aggiornamento ==="
wp db export $BACKUP_BEFORE

echo "=== Aggiornamento plugin ==="
wp plugin update --all

# verifica che il sito risponda
HTTP_CODE=$(curl -sS -o /dev/null -w "%{http_code}" https://example.com)

if [ "$HTTP_CODE" = "200" ]; then
  echo "Sito OK, aggiornamento completato"
else
  echo "ERRORE: sito non raggiungibile, rollback in corso"
  wp db import $BACKUP_BEFORE
  exit 1
fi</code></pre>



<h3 class="wp-block-heading">Script 3: clonazione staging da produzione</h3>



<pre class="wp-block-code"><code>#!/bin/bash
# clone-to-staging.sh - clona sito produzione in staging
set -e

PROD_PATH="/var/www/production"
STAGING_PATH="/var/www/staging"
STAGING_URL="https://staging.example.com"

cd $STAGING_PATH

echo "=== Download database produzione ==="
wp db export /tmp/prod-db.sql --path=$PROD_PATH
wp db import /tmp/prod-db.sql

# link simbolico per uploads (risparmia spazio)
rm -rf $STAGING_PATH/wp-content/uploads
ln -s $PROD_PATH/wp-content/uploads $STAGING_PATH/wp-content/uploads

echo "=== Search and replace URL ==="
wp search-replace "https://example.com" "$STAGING_URL" --all-tables --skip-columns=guid

# disabilita cron e email
wp config set DISABLE_WP_CRON true --raw
wp config set WP_DEBUG true --raw
wp config set WP_DEBUG_LOG true --raw

echo "Clonazione completata"</code></pre>



<h3 class="wp-block-heading">Script 4: monitoraggio salute con alerting</h3>



<pre class="wp-block-code"><code>#!/bin/bash
# health-check.sh - monitoraggio giornaliero con alert email
set -e

SITE_PATH="/var/www/html"
ADMIN_EMAIL="admin@example.com"

cd $SITE_PATH

# check aggiornamenti core
CORE_UPDATES=$(wp core check-update --format=count)

# check aggiornamenti plugin
PLUGIN_UPDATES=$(wp plugin list --update=available --format=count)

# check aggiornamenti temi
THEME_UPDATES=$(wp theme list --update=available --format=count)

# check integrità core
CORE_CHECK=$(wp core verify-checksums 2&gt;&amp;1 | grep -c "differenza" || true)

# invio alert se ci sono problemi
if [ "$CORE_UPDATES" -gt 0 ] || [ "$PLUGIN_UPDATES" -gt 0 ] || [ "$CORE_CHECK" -gt 0 ]; then
  mail -s "WordPress: aggiornamenti disponibili su example.com" $ADMIN_EMAIL &lt;&lt;EOF
Aggiornamenti core: $CORE_UPDATES
Aggiornamenti plugin: $PLUGIN_UPDATES
Aggiornamenti temi: $THEME_UPDATES
Differenze core: $CORE_CHECK

Esegui: cd $SITE_PATH &amp;&amp; wp core update &amp;&amp; wp plugin update --all
EOF
fi</code></pre>



<h3 class="wp-block-heading">Script 5: generazione report mensile</h3>



<pre class="wp-block-code"><code>#!/bin/bash
# monthly-report.sh - report mensile stato sito
set -e

SITE_PATH="/var/www/html"
REPORT_FILE="/tmp/wp-report-$(date +%Y%m).txt"

cd $SITE_PATH

{
echo "=== WordPress Site Report $(date +%Y-%m-%d) ==="
echo ""
echo "Versione WordPress: $(wp core version)"
echo "Versione PHP: $(php -r 'echo PHP_VERSION;')"
echo ""
echo "--- Contenuti ---"
echo "Articoli pubblicati: $(wp post list --post_type=post --post_status=publish --format=count)"
echo "Pagine pubblicate: $(wp post list --post_type=page --post_status=publish --format=count)"
echo "Media in library: $(wp post list --post_type=attachment --format=count)"
echo "Utenti registrati: $(wp user list --format=count)"
echo "Commenti: $(wp comment list --format=count)"
echo ""
echo "--- Plugin ---"
wp plugin list --format=table
echo ""
echo "--- Performance ---"
wp db size --format=table
echo ""
echo "--- Aggiornamenti disponibili ---"
wp core check-update
echo "Plugin da aggiornare: $(wp plugin list --update=available --format=count)"
echo "Temi da aggiornare: $(wp theme list --update=available --format=count)"

} &gt; $REPORT_FILE

cat $REPORT_FILE</code></pre>



<h2 class="wp-block-heading">Integrazione AI con MCP: casi d&#x27;uso reali</h2>



<p class="wp-block-paragraph">L&#x27;integrazione WP-CLI + AI tramite MCP è la novità più significativa del 2026. Ecco quattro casi d&#x27;uso reali che ho implementato su progetti di clienti.</p>



<h3 class="wp-block-heading">Caso 1: refactoring automatico plugin</h3>



<p class="wp-block-paragraph">Un cliente aveva un plugin legacy con 8.000 righe di codice PHP misto a HTML, jQuery deprecato, e nessuno standard di coding. Con Claude Code connesso via MCP a WP-CLI, è stato possibile:</p>



<ul class="wp-block-list"><li>Analizzare l&#x27;intero plugin con <code>wp eval</code> per capire la struttura</li><li>Identificare pattern problematici con query al codice via MCP</li><li>Riscrivere le sezioni critiche con prompt contestuali</li><li>Testare le modifiche con <code>wp eval</code> e <code>wp test</code></li><li>Committare le modifiche con messaggi di commit descrittivi</li></ul>



<p class="wp-block-paragraph">Tempo risparmiato rispetto al refactoring manuale: circa 60%.</p>



<h3 class="wp-block-heading">Caso 2: generazione contenuti editoriali</h3>



<p class="wp-block-paragraph">Un editore con 50 articoli/mese ha integrato WP-CLI con Claude per:</p>



<ul class="wp-block-list"><li>Generare bozze di articoli partendo da brief in linguaggio naturale</li><li>Ottimizzare SEO con analisi automatizzata delle keyword</li><li>Generare excerpt, meta description, e tag automaticamente</li><li>Revisionare il tono dei contenuti pubblicati</li></ul>



<h3 class="wp-block-heading">Caso 3: manutenzione predittiva</h3>



<p class="wp-block-paragraph">Un&#x27;agenzia che gestisce 30 siti WordPress ha implementato uno script che:</p>



<ul class="wp-block-list"><li>Monitora uptime, performance, e aggiornamenti su tutti i siti</li><li>Usa Claude per analizzare i log e identificare pattern anomali</li><li>Genera ticket di manutenzione con diagnosi e soluzione suggerita</li><li>Invia report settimanali con priorità di intervento</li></ul>



<h3 class="wp-block-heading">Caso 4: migrazione guidata WordPress 7.0</h3>



<p class="wp-block-paragraph">Per un cliente con 15 siti WordPress, è stato possibile:</p>



<ul class="wp-block-list"><li>Analizzare plugin installati con <code>wp doctor check plugin</code></li><li>Identificare plugin incompatibili con WP 7.0</li><li>Suggerire alternative moderne con AI</li><li>Generare script di migrazione personalizzati per ogni sito</li><li>Testare la migrazione in staging prima del go-live</li></ul>



<h2 class="wp-block-heading">Best practice operative</h2>



<p class="wp-block-paragraph">Le best practice che separano un uso amatoriale da un uso professionale di WP-CLI sono sette.</p>



<h3 class="wp-block-heading">1. Sempre <code>--dry-run</code> prima di operazioni distruttive</h3>



<pre class="wp-block-code"><code># sempre dry-run prima
wp search-replace "old" "new" --dry-run
wp db query "DELETE FROM wp_options WHERE option_name LIKE '%transient%';" --dry-run</code></pre>



<h3 class="wp-block-heading">2. Backup prima di ogni operazione importante</h3>



<pre class="wp-block-code"><code># regola: backup -&gt; verifica -&gt; operazione
wp db export /tmp/pre-update-$(date +%Y%m%d).sql
wp plugin update --all</code></pre>



<h3 class="wp-block-heading">3. Usa <code>--allow-root</code> con cautela</h3>



<p class="wp-block-paragraph">Il flag <code>--allow-root</code> permette di eseguire WP-CLI come root (necessario in container Docker o ambienti CI). Va usato solo quando necessario, e mai in produzione interattiva.</p>



<h3 class="wp-block-heading">4. Configura <code>wp-cli.yml</code> per il progetto</h3>



<p class="wp-block-paragraph">Il file <code>wp-cli.yml</code> nella root del progetto evita di specificare path e parametri ad ogni comando.</p>



<h3 class="wp-block-heading">5. Usa le application password per CI/CD</h3>



<p class="wp-block-paragraph">Le application password (introdotte in WordPress 5.6) permettono di autenticare le API REST senza esporre la password principale. Per CI/CD e automazioni, sono la scelta sicura.</p>



<h3 class="wp-block-heading">6. Log delle operazioni</h3>



<p class="wp-block-paragraph">In ambienti di produzione, logga tutte le operazioni WP-CLI con timestamp e operatore:</p>



<pre class="wp-block-code"><code># esempio di logging
{
  echo "[$(date +%Y-%m-%d_%H:%M:%S)] Operatore: $(whoami)"
  echo "Comando: wp $*"
  wp "$@"
} &gt;&gt; /var/log/wp-cli.log</code></pre>



<h3 class="wp-block-heading">7. Test in staging prima di produzione</h3>



<p class="wp-block-paragraph">Qualsiasi script o comando complesso va testato in staging prima di essere eseguito in produzione. Il workflow è: sviluppo → staging → produzione, sempre.</p>



<h2 class="wp-block-heading">Domande frequenti</h2>



<h3 class="wp-block-heading">WP-CLI è sicuro da usare in produzione?</h3>



<p class="wp-block-paragraph">Sì, se usato con criterio. Le regole fondamentali sono: backup prima di operazioni distruttive, dry-run prima di search-replace, test in staging prima di produzione, e logging di tutte le operazioni. Con queste pratiche, WP-CLI è più sicuro del browser admin perché è ripetibile e auditabile.</p>



<h3 class="wp-block-heading">Qual è la differenza tra <code>wp</code> e <code>wp --allow-root</code>?</h3>



<p class="wp-block-paragraph">Il flag <code>--allow-root</code> permette di eseguire WP-CLI come utente root. È necessario in container Docker, ambienti CI/CD, o quando i permessi file non sono configurati correttamente. In ambienti di produzione interattiva, è meglio configurare i permessi corretti e usare WP-CLI come utente web (www-data, nginx, o equivalente).</p>



<h3 class="wp-block-heading">Posso usare WP-CLI con WordPress Multisite?</h3>



<p class="wp-block-paragraph">Sì. WP-CLI supporta pienamente WordPress Multisite dalla versione 1.0. I comandi site-wide (es. <code>wp plugin update --all --url=site1.com</code>) permettono di operare su singoli siti del network. Il comando <code>wp site list</code> mostra tutti i siti del network, e <code>wp site switch</code> permette di cambiare il contesto operativo.</p>



<h3 class="wp-block-heading">Come posso contribuire a WP-CLI?</h3>



<p class="wp-block-paragraph">WP-CLI è open source e accoglie contributi. Il repository ufficiale è <a href="https://github.com/wp-cli/wp-cli" target="_blank" rel="noopener nofollow external" data-wpel-link="external">github.com/wp-cli/wp-cli</a>. I contributi più richiesti nel 2026 sono: testing, documentazione, nuovi comandi, e miglioramenti delle prestazioni. La community è su Slack (wp-cli.slack.com) e molto attiva.</p>



<h3 class="wp-block-heading">WP-CLI sostituisce il pannello admin di WordPress?</h3>



<p class="wp-block-paragraph">No, e non è questo il suo scopo. WP-CLI è complementare al pannello admin: per task ripetitivi, automazioni, e operazioni di massa è imbattibile, ma per task occasionali e content editing, il pannello admin resta più ergonomico. La regola operativa è: usa il browser per i task uno-a-uno, usa WP-CLI per i task uno-a-molti.</p>



<h3 class="wp-block-heading">Quali sono gli errori più comuni con WP-CLI?</h3>



<p class="wp-block-paragraph">I tre errori più frequenti sono: (1) operare nella directory sbagliata (sempre <code>cd</code> nella root di WordPress prima di usare WP-CLI), (2) dimenticare <code>--allow-root</code> in container Docker, (3) eseguire <code>wp search-replace</code> su serializzati senza il supporto nativo (usa sempre il comando ufficiale, non query SQL dirette). Tutti evitabili con le best practice descritte sopra.</p>



<h3 class="wp-block-heading">WP-CLI funziona con hosting condivisi senza accesso SSH?</h3>



<p class="wp-block-paragraph">No, WP-CLI richiede accesso shell. Per hosting condivisi senza SSH, le alternative sono: usare il pannello admin (lento per task di massa), chiedere all&#x27;hosting di eseguire i comandi, o migrare a un hosting con accesso shell. Il prezzo di un hosting con SSH è ormai comparabile a quello degli hosting condivisi entry-level.</p>



<h2 class="wp-block-heading">Riferimenti ufficiali</h2>



<p class="wp-block-paragraph">Per approfondire i temi toccati in questa guida, ecco le fonti primarie consultate e raccomandate.</p>



<ul class="wp-block-list"><li><a href="https://wp-cli.org/" target="_blank" rel="noopener nofollow external" data-wpel-link="external">WP-CLI官方网站</a> - sito ufficiale del progetto.</li><li><a href="https://developer.wordpress.org/cli/commands/" target="_blank" rel="noopener nofollow external" data-wpel-link="external">WP-CLI Commands</a> - reference completa comandi.</li><li><a href="https://github.com/wp-cli/wp-cli" target="_blank" rel="noopener nofollow external" data-wpel-link="external">WP-CLI GitHub</a> - repository ufficiale.</li><li><a href="https://github.com/wp-cli/wp-cli/wiki/Package-Index" target="_blank" rel="noopener nofollow external" data-wpel-link="external">WP-CLI Package Index</a> - indice pacchetti aggiuntivi.</li><li><a href="https://modelcontextprotocol.io/" target="_blank" rel="noopener nofollow external" data-wpel-link="external">Model Context Protocol</a> - specifica MCP.</li><li><a href="https://make.wordpress.org/core/2020/11/05/application-passwords-integration-guide/" target="_blank" rel="noopener nofollow external" data-wpel-link="external">WordPress Application Passwords</a> - guida API authentication.</li><li><a href="https://github.com/wp-cli/docker" target="_blank" rel="noopener nofollow external" data-wpel-link="external">WP-CLI Docker</a> - immagine Docker ufficiale.</li><li><a href="https://github.com/WordPress/WordPress-Coding-Standards" target="_blank" rel="noopener nofollow external" data-wpel-link="external">WordPress Coding Standards</a> - standard di sviluppo.</li><li><a href="https://www.mrtux.it/workflow-perfetto-tool-sviluppo-web" data-wpel-link="internal" target="_self" rel="noopener">Workflow perfetto sviluppo web mrtux.it</a> - framework 7 stadi.</li><li><a href="https://www.mrtux.it/plugin-wordpress-da-evitare-2026" data-wpel-link="internal" target="_self" rel="noopener">Plugin WordPress da evitare mrtux.it</a> - lista plugin 2026.</li></ul>



<p class="wp-block-paragraph">Questa guida verrà aggiornata ad ogni release majeure di WP-CLI. WP-CLI 2.13 è previsto per l&#x27;autunno 2026 con miglioramenti alle performance, supporto per PHP 8.5, e nuovi comandi per l&#x27;integrazione AI. Per suggerimenti o correzioni, l&#x27;area commenti è aperta.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.mrtux.it/wp-cli-2026-guida-completa-ai/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>WordPress 7.0: come aggiornare in produzione senza downtime</title>
		<link>https://www.mrtux.it/wordpress-7-0-come-aggiornare-in-produzione-senza-downtime</link>
					<comments>https://www.mrtux.it/wordpress-7-0-come-aggiornare-in-produzione-senza-downtime#respond</comments>
		
		<dc:creator><![CDATA[Emilio Petrozzi]]></dc:creator>
		<pubDate>Mon, 01 Jun 2026 14:30:09 +0000</pubDate>
				<category><![CDATA[sviluppo-web]]></category>
		<category><![CDATA[aggiornamento WordPress]]></category>
		<category><![CDATA[devops WordPress]]></category>
		<category><![CDATA[manutenzione WordPress]]></category>
		<category><![CDATA[staging WordPress]]></category>
		<category><![CDATA[WordPress 7.0]]></category>
		<category><![CDATA[zero downtime]]></category>
		<guid isPermaLink="false">https://www.mrtux.it/?p=3433</guid>

					<description><![CDATA[WordPress 7.0 introduce cambiamenti profondi (PHP 7.4+, nuovo DataViews admin, collaboration real-time). Aggiornare un sito in produzione senza downtime richiede un metodo ingegneristico: staging, backup verificati, freeze dei plugin, manutenzione controllata e rollback rapido. Ecco la procedura operativa.]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">WordPress 7.0, rilasciato ufficialmente il <strong>20 maggio 2026</strong>, è la major release più impattante dal 5.0: <em>real-time collaboration</em> sui contenuti, amministrazione ridisegnata con il sistema <strong>DataViews</strong>, requisiti minimi innalzati a <strong>PHP 7.4</strong> e una nuova <em>AI infrastructure</em> nativa. Per chi gestisce siti in produzione, questo significa una cosa sola: la finestra di errore si riduce, perché il delta tra un sito WordPress 6.x e 7.0 attraversa stack, plugin e template.</p>



<p class="wp-block-paragraph">L'approccio "aggiorno e vedo cosa succede" non regge più. Serve una procedura ingegneristica, ripetibile, con rollback misurato. In questa guida ti spiego il metodo che usiamo sui siti in produzione dei nostri clienti, con i punti di attenzione specifici introdotti dal 7.0.</p>



<p class="wp-block-paragraph">Se vuoi invece una panoramica completa di tutte le novità, puoi leggere <a href="https://www.mrtux.it/le-novit-di-wordpress-70-guida-completa-a-tutte-le-funzional-3" data-wpel-link="internal" target="_self" rel="noopener">la nostra guida completa a WordPress 7.0</a>. Qui ci concentriamo solo sull'<strong>operatività dell'aggiornamento</strong>.</p>



<h2 class="wp-block-heading">I tre rischi specifici di WordPress 7.0</h2>



<p class="wp-block-paragraph">Prima di toccare la produzione, mappa i rischi concreti introdotti da questa release. WordPress 7.0 non è un aggiornamento incrementale: cambia abbastanza sotto al cofano da rendere insufficienti le checklist del 6.x.</p>



<ul class="wp-block-list">
<li><strong>Stack non più compatibile</strong> — Il core richiede PHP 7.4 minimo e MySQL 8.0+. Hosting datati (PHP 7.2, MariaDB 10.2) vengono tagliati fuori. Verificare prima se il proprio provider ha già aggiornato la versione di PHP disponibile.</li>



<li><strong>Temi block-based con override profondi</strong> — I temi Full Site Editing che facevano largo uso di hook personalizzati su block templates possono rompersi a causa del nuovo <em>Block Locking API</em>. I layout che "forzavano" proprietà ora potrebbero entrare in conflitto.</li>



<li><strong>Plugin di terze parti non pronti</strong> — Molti plugin usano <code>admin_print_footer_scripts</code>, <code>manage_posts_extra_tablenav</code> e altri hook legacy. La nuova interfaccia DataViews può renderli invisibili o non funzionanti. Serve un audit plugin per plugin.</li>
</ul>



<h2 class="wp-block-heading">Architettura minima per aggiornare senza downtime</h2>



<p class="wp-block-paragraph">Prima ancora di pensare a "come aggiornare", serve un'<strong>architettura che lo permetta</strong>. Se il sito è su un singolo server condiviso senza staging, l'obiettivo zero downtime è irrealistico. Ecco cosa serve.</p>



<h3 class="wp-block-heading">1. Un ambiente di staging vero, non una copia a mano</h3>



<p class="wp-block-paragraph">Lo staging deve essere una <strong>replica bit-per-bit</strong> della produzione: stesso PHP, stesso MySQL, stessi plugin, stesse versioni, stesso tema child. Se cloni a mano e ti dimentichi il file <code>wp-config.php</code> o il cron di sistema, stai facendo theatre, non devops.</p>



<p class="wp-block-paragraph">Un setup minimo per iniziare: usa <a href="https://www.mrtux.it/container-docker-php-setup-minimale" data-wpel-link="internal" target="_self" rel="noopener">container Docker per PHP</a> localmente e poi replica la configurazione sul server di staging. La parola chiave è <em>parità ambientale</em>: se produzione gira su PHP 8.2 con OPcache attivo, anche lo staging deve girare così.</p>



<h3 class="wp-block-heading">2. Backup verificati e ripristinabili</h3>



<p class="wp-block-paragraph">Un backup che non hai mai provato a ripristinare non è un backup, è una preghiera. Prima dell'aggiornamento a 7.0:</p>



<ul class="wp-block-list">
<li>Backup completo di file e database, <strong>non incrementale</strong></li>



<li>Ripristino di prova su un terzo ambiente (anche locale) entro 7 giorni</li>



<li>Conservazione off-site per almeno 30 giorni</li>
</ul>



<h3 class="wp-block-heading">3. Accesso SSH e WP-CLI sul server di produzione</h3>



<p class="wp-block-paragraph">Operare da browser con la pagina di aggiornamento del backend significa: timeout, lock parziali, modalità manutenzione che resta attiva se qualcosa va storto. Con WP-CLI puoi gestire tutto da terminale, anche su connessioni instabili. Verifica che <code>wp --info</code> risponda prima di iniziare.</p>



<h2 class="wp-block-heading">La procedura operativa in 8 step</h2>



<p class="wp-block-paragraph">Una volta che l'architettura è in piedi, l'aggiornamento vero e proprio è una checklist ripetibile. Segui gli step nell'ordine indicato.</p>



<h3 class="wp-block-heading">Step 1 — Audit plugin e temi</h3>



<p class="wp-block-paragraph">Scarica un export JSON di tutti i plugin e temi installati (<code>wp plugin list --format=json</code>). Per ognuno verifica:</p>



<ul class="wp-block-list">
<li>Data di ultimo aggiornamento: se >12 mesi, rischio alto</li>



<li>Compatibilità dichiarata con PHP 8.x: se non c'è, rischio altissimo</li>



<li>Test contro WordPress 7.0 RC4 su staging (WordPress.org rilascia i release candidate proprio per questo)</li>
</ul>



<h3 class="wp-block-heading">Step 2 — Clona la produzione sullo staging</h3>



<p class="wp-block-paragraph">Copia file + database. Modifica solo <code>wp-config.php</code> per puntare al nuovo DB e cambia gli URL in <code>siteurl</code> e <code>home</code> con WP-CLI:</p>



<pre class="wp-block-code"><code># clona database di produzione sullo staging
wp db export /tmp/staging_db.sql --allow-root
scp /tmp/staging_db.sql staging:/tmp/
ssh staging 'wp db import /tmp/staging_db.sql --allow-root'

# aggiorna URL sullo staging
ssh staging "wp option update siteurl 'https://staging.example.com' --allow-root"
ssh staging "wp option update home 'https://staging.example.com' --allow-root"</code></pre>



<h3 class="wp-block-heading">Step 3 — Aggiorna prima plugin e temi sullo staging</h3>



<p class="wp-block-paragraph">Questo è il punto in cui emergono i conflitti reali. Aggiorna un plugin alla volta, testando dopo ognuno. Su WordPress 7.0 la regola è: <strong>se un plugin ha una versione compatibile con 7.0, prendila; se non ce l'ha, congelalo</strong> e documenta la deroga. I plugin bloccanti vanno sostituiti, non disattivati: una disattivazione silenziosa di un plugin SEO o di cache può rompere il sito in modi non immediatamente visibili.</p>



<h3 class="wp-block-heading">Step 4 — Aggiorna il core a 7.0 sullo staging</h3>



<p class="wp-block-paragraph">Solo dopo che plugin e temi sono puliti. Usa WP-CLI con <code>--skip-themes</code> e <code>--skip-plugins</code> per isolare l'aggiornamento del core:</p>



<pre class="wp-block-code"><code># aggiorna solo il core WordPress, lasciando stare plugin e temi
wp core update --skip-themes --skip-plugins --allow-root

# poi rilancia gli aggiornamenti di plugin e temi separatamente
wp plugin update --all --allow-root
wp theme update --all --allow-root</code></pre>



<h3 class="wp-block-heading">Step 5 — Test funzionali sullo staging</h3>



<p class="wp-block-paragraph">Non "visito la home e mi sembra ok". Serve un test <strong>funzionale</strong>:</p>



<ul class="wp-block-list">
<li>Login come editor, autore, amministratore: ogni ruolo vede il backend corretto?</li>



<li>Crea un articolo di prova con tutti i blocchi che usi (cover, gallery, tabelle, group/columns)</li>



<li>Effettua un acquisto di test se gestisci WooCommerce</li>



<li>Controlla i log PHP (<code>/var/log/php-fpm/</code>) e gli errori 5xx su Nginx/Apache</li>



<li>Verifica l'output dei form di contatto e delle newsletter</li>
</ul>



<h3 class="wp-block-heading">Step 6 — Misura i tempi</h3>



<p class="wp-block-paragraph">Sullo staging, cronometra quanto dura ogni fase. L'aggiornamento core su 7.0 su un sito medio è di circa 30-90 secondi, ma il delta arriva dalla cache: invalidazione oggetti, ricostruzione autoload, rigenerazione rewrite rules. Pianifica una finestra di <strong>5-10 minuti</strong> per il "passaggio" in produzione.</p>



<h3 class="wp-block-heading">Step 7 — Esegui l'aggiornamento in produzione</h3>



<p class="wp-block-paragraph">Quando staging è verde, ripeti la stessa sequenza in produzione. Sequenza comandi:</p>



<pre class="wp-block-code"><code># 1. backup di sicurezza immediato
ssh prod "wp db export /var/backups/wp_pre70_$(date +%Y%m%d).sql --allow-root"

# 2. attiva manutenzione
ssh prod "wp maintenance-mode activate --allow-root"

# 3. aggiorna il core
ssh prod "wp core update --skip-themes --skip-plugins --allow-root"

# 4. aggiorna plugin e temi uno a uno
ssh prod "wp plugin update --all --allow-root"
ssh prod "wp theme update --all --allow-root"

# 5. disattiva manutenzione
ssh prod "wp maintenance-mode deactivate --allow-root"</code></pre>



<p class="wp-block-paragraph">La finestra in cui il sito mostra la pagina "Sito in manutenzione" è idealmente <strong>sotto i 60 secondi</strong>: il tempo necessario a scaricare il nuovo core, decomprimerlo, aggiornare il DB e spegnere la modalità. Per ridurla, puoi pre-scaricare il pacchetto del core sul server ed eseguire un aggiornamento "minore" da file system.</p>



<h3 class="wp-block-heading">Step 8 — Smoke test post-aggiornamento</h3>



<p class="wp-block-paragraph">Subito dopo aver spento la manutenzione, esegui:</p>



<ul class="wp-block-list">
<li>Verifica HTTP 200 su homepage, una pagina interna, il backend (<code>wp post list</code> via WP-CLI)</li>



<li>Controlla i log delle ultime 5 minuti: nessun errore fatale PHP o MySQL?</li>



<li>Apri Chrome DevTools, disabilita cache, ricarica: la pagina risponde in &lt;1s?</li>



<li>Controlla che i cron di sistema siano partiti (<code>wp cron event list</code>)</li>
</ul>



<h2 class="wp-block-heading">Strategia di rollback: il piano B</h2>



<p class="wp-block-paragraph">Nonostante tutta la preparazione, può succedere che qualcosa si rompa. Avere un rollback misurato è la differenza tra un'ora di stress e un downgrade in 10 minuti. Le opzioni sono tre, in ordine di robustezza.</p>



<h3 class="wp-block-heading">Confronto rapido delle tre opzioni di rollback</h3>



<p class="wp-block-paragraph">Prima di scegliere, valuta pro, contro e casi d'uso. La soluzione giusta dipende da quanto tempo hai e da quale rischio devi mitigare.</p>



<div class="wp-block-group"><div class="wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<h4 class="wp-block-heading">Rollback via backup DB + file</h4>



<p class="wp-block-paragraph"><strong>Funziona quando:</strong> il problema è nel core o nei plugin aggiornati e vuoi tornare a una versione pulita.</p>



<p class="wp-block-paragraph"><strong>Pro:</strong> ripristino totale, riporta il sito allo stato esatto pre-aggiornamento.</p>



<p class="wp-block-paragraph"><strong>Contro:</strong> perdi i contenuti pubblicati durante la finestra di aggiornamento (in genere pochi minuti, ma potrebbero esserci commenti e ordini WooCommerce).</p>



<p class="wp-block-paragraph"><strong>Tempo di esecuzione:</strong> 5-15 minuti, dipende dalla dimensione del DB.</p>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<h4 class="wp-block-heading">Downgrade core mirato</h4>



<p class="wp-block-paragraph"><strong>Funziona quando:</strong> il problema è solo nel core di WordPress 7.0, plugin e temi vanno bene.</p>



<p class="wp-block-paragraph"><strong>Pro:</strong> tieni plugin aggiornati, contenuti recenti, configurazioni correnti. Ripristini solo il core.</p>



<p class="wp-block-paragraph"><strong>Contro:</strong> richiede la stessa versione esatta del core 6.x da cui sei partito. Il DB potrebbe avere migrazioni non reversibili in 7.0.</p>



<p class="wp-block-paragraph"><strong>Tempo di esecuzione:</strong> 2-5 minuti.</p>
</div>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<h4 class="wp-block-heading">Disattivazione mirata del plugin rotto</h4>



<p class="wp-block-paragraph"><strong>Funziona quando:</strong> un singolo plugin incompatibile sta generando l'errore.</p>



<p class="wp-block-paragraph"><strong>Pro:</strong> minimo impatto, il resto del sito continua a girare su 7.0. Spesso è la soluzione più rapida.</p>



<p class="wp-block-paragraph"><strong>Contro:</strong> lasci una funzionalità scoperta finché non trovi un sostituto o il plugin non rilascia una patch.</p>



<p class="wp-block-paragraph"><strong>Tempo di esecuzione:</strong> 30 secondi, ma richiede di aver già identificato il plugin colpevole.</p>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<p class="wp-block-paragraph">Per approfondire la parte di selezione e gestione dei plugin in ambienti critici, vale la pena rileggere <a href="https://www.mrtux.it/5-wordpress-plugins-indispensabili-per-sicurezza-seo-e-performance" data-wpel-link="internal" target="_self" rel="noopener">la nostra guida ai 5 plugin WordPress indispensabili</a>: il concetto di "indispensabile" deve essere rivisto dopo un major upgrade, perché il contorno dei plugin cambia.</p>
</div>
</div>



<h2 class="wp-block-heading">Punti di attenzione specifici del 7.0</h2>



<p class="wp-block-paragraph">Alcuni comportamenti sono nuovi rispetto al 6.x e meritano un check mirato.</p>



<h3 class="wp-block-heading">Real-time collaboration e conflitti di sessione</h3>



<p class="wp-block-paragraph">La collaboration real-time di WordPress 7.0 apre WebSocket persistenti. Verifica che il reverse proxy (Nginx, Cloudflare) li gestisca correttamente. Timeout troppo bassi o buffering aggressivo possono bloccare la funzionalità senza generare errori visibili, lasciando gli editor con modifiche non salvate.</p>



<h3 class="wp-block-heading">Auth a due fattori nativa</h3>



<p class="wp-block-paragraph">Se avevi un plugin 2FA attivo (es. <em>Two Factor</em> o <em>Wordfence Login Security</em>), disattivalo <strong>prima</strong> di aggiornare per evitare lockout sugli account amministratore. La 2FA nativa di 7.0 non va in conflitto ma può generare richieste doppie di codice TOTP, e gli utenti non capiscono quale plugin sta chiedendo cosa.</p>



<h3 class="wp-block-heading">AI infrastructure e privacy</h3>



<p class="wp-block-paragraph">WordPress 7.0 porta funzionalità AI native (riassunti, generazione bozze, tag suggeriti). Se il sito gestisce dati personali di utenti UE, verifica con il DPO se queste funzionalità trasmettono contenuti a endpoint esterni. In caso, disabilita i blocchi AI fino a quando non hai una DPIA aggiornata.</p>



<h2 class="wp-block-heading">Manutenzione post-aggiornamento</h2>



<p class="wp-block-paragraph">L'aggiornamento non finisce quando spegni la manutenzione. I primi 7 giorni sono i più delicati.</p>



<ol class="wp-block-list">
<li><strong>Giorno 1-2:</strong> monitora log PHP/MySQL, tassi di errore 5xx, tempo medio di risposta</li>



<li><strong>Giorno 3-5:</strong> raccogli feedback da editor e autori, soprattutto su collaborazione real-time e template</li>



<li><strong>Giorno 7:</strong> primo <code>wp db optimize</code> e verifica dimensione tabella options (l'autoload si gonfia)</li>



<li><strong>Giorno 14:</strong> rimuovi plugin di staging/debug aggiunti temporaneamente e ripulisci le tabelle di transients scaduti</li>
</ol>



<h2 class="wp-block-heading">Quando <em>non</em> aggiornare a 7.0</h2>



<p class="wp-block-paragraph">Non tutti i siti devono saltare sul 7.0 il primo giorno. Valuta attentamente di restare su 6.x LTS se ti riconosci in uno di questi casi:</p>



<ul class="wp-block-list">
<li>Stack di hosting bloccato su PHP 7.2/7.3 e provider non reattivo</li>



<li>Plugin core del business senza aggiornamenti da oltre 18 mesi</li>



<li>Temi custom profondamente modificati senza documentazione o manutenzione attiva</li>



<li>Siti e-commerce WooCommerce con flussi di checkout dipendenti da plugin non aggiornati</li>
</ul>



<p class="wp-block-paragraph">In questi casi, meglio investire 1-2 sprint nel risanare lo stack e arrivare al 7.0 in sicurezza, che forzare l'aggiornamento e scoprire i problemi in produzione.</p>



<h2 class="wp-block-heading">Conclusioni</h2>



<p class="wp-block-paragraph">Aggiornare WordPress 7.0 in produzione senza downtime non è magia: è <strong>processo</strong>. Architettura con staging, backup verificati, audit plugin, test funzionali, sequenza di comandi ripetibile, rollback misurato. Una volta che la procedura è in piedi, diventa applicabile a tutte le release future, non solo a questa.</p>



<p class="wp-block-paragraph">WordPress 7.0 è un'evoluzione importante. Affrontarla con metodo ingegneristico significa trasformare un potenziale momento di panico in una <strong>manutenzione programmata di routine</strong>. E una manutenzione di routine è esattamente quello che vuoi, soprattutto se hai un business che gira sul tuo sito.</p>



<p class="wp-block-paragraph">Se stai pianificando l'aggiornamento di un sito complesso e vuoi una mano con la procedura o con la diagnosi di plugin incompatibili, <a href="https://www.mrtux.it/contatti" data-wpel-link="internal" target="_self" rel="noopener">contattaci</a>: facciamo audit pre-upgrade e accompagnamento al deploy da diversi anni e abbiamo visto praticamente ogni tipo di rottura immaginabile.</p>



<hr class="wp-block-separator has-css-opacity"/>



<p class="wp-block-paragraph"><em>Hai già aggiornato a WordPress 7.0? Quali plugin o temi ti hanno creato problemi? Racconta la tua esperienza nei commenti, può essere utile ad altri che stanno per fare lo stesso passaggio.</em></p>
</div></div>
]]></content:encoded>
					
					<wfw:commentRss>https://www.mrtux.it/wordpress-7-0-come-aggiornare-in-produzione-senza-downtime/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
