Vai al contenuto
Strumenti

SQL di ricerca e sostituzione

Cambia l'URL del tuo sito senza corrompere i dati serializzati

Gira nel tuo browser. Niente viene caricato.

La modifica

Leggi questo prima di eseguire qualsiasi cosa

WordPress memorizza molte opzioni come stringhe PHP-serialized, e una stringa serializzata registra la propria lunghezza in byte — s:19:"http://old-site.com". Un semplice replace SQL cambia il testo ma non la lunghezza, quindi PHP non riesce più a deserializzare la riga. Non genera alcun errore. Il valore diventa semplicemente vuoto, senza alcun avviso.

Cosa perdi: la configurazione dei widget, le personalizzazioni del tema e la maggior parte delle impostazioni dei plugin. Di solito non te ne accorgi finché non passano giorni, e a quel punto anche il backup che avresti ripristinato è ormai perso.

Ecco perché le query qui sotto evitano deliberatamente di toccare wp_options.

Cosa stai spostando?
search-replace.sql

Fai prima un backup del database. Non "valuta se farlo": fallo. Non c'è modo di annullare un UPDATE.

Informazioni su SQL di ricerca e sostituzione

Un ingenuo trova-e-sostituisci SQL su un database WordPress rompe ogni opzione serializzata che tocca, perché la lunghezza della stringa memorizzata non corrisponde più. Questo strumento genera le query sicure e spiega esattamente quali non lo sono.

FAQ

Domande

Posso cambiare l'URL del mio sito WordPress con un trova e sostituisci in SQL?

Non in sicurezza, ed è il consiglio sbagliato più condiviso in WordPress. Molte opzioni sono memorizzate come stringhe PHP serializzate che registrano la propria lunghezza in byte. Una semplice sostituzione SQL cambia il testo ma non la lunghezza, quindi PHP fallisce silenziosamente la deserializzazione della riga e il valore semplicemente sparisce — portandosi via impostazioni dei widget, personalizzazioni del tema e configurazioni dei plugin.

Cosa dovrei usare invece?

WP-CLI: prima 'wp search-replace old new --all-tables --dry-run', poi senza --dry-run. Comprende la serializzazione e riscrive correttamente i prefissi di lunghezza. Se non hai accesso alla CLI, il plugin Better Search Replace fa la stessa cosa dall'amministrazione.

Dovrei aggiornare la colonna GUID?

No. Il GUID è un identificatore univoco permanente di un articolo, non un link, e i lettori di feed lo usano come chiave. Riscriverlo fa sì che ogni iscritto veda ogni vecchio articolo come nuovo di zecca. La documentazione di WordPress dice esplicitamente di non cambiarlo.