Sostituiamo Testo nel DataBase di WordPress

Il trasferimento di un sito Wordpress da locale a remoto spesso richiede una sostituzione dei dati riguardo il dominio, con questo script risolvi con un click.

Scommetto che hai provato a spostare un database di WordPress da un dominio all’altro ed hai avuto dei problemi.

Oggi vedremo grazie ad uno script come evitarli!

Search Replace DB

Questo script in PHP posizionato nella cartella dove è presente il file wp-config.php permette di rimpiazzare del testo all’interno di tutto il database.
Cosa sto dicendo?

Bèh, hai presente nella configurazione di WordPress i campi relativi all’indirizzo del sito? Questi campi vengono usati per inserire i link alle pagine interne del sito e alle immagini all’interno del post.
Come se non bastasse spesso l’indirizzo web del sito è inserito dentro ai post/pagine/ecc!
Inoltre alcuni di questi indirizzi vengono usati anche nei campi di impostazione dei plugin e vengono serializzati.

Serializzazione

La serializzazione è una tecnica per convertire un array di stringhe in una stringa e contiene all’interno le lunghezze in caratteri delle varie stringhe. Se facessi una sostituzione automatica sul file SQL del database cambierei solo il contenuto ma non questo valore numerico e WordPress potrebbe non riconoscere la configurazione dei widgets per esempio (te lo dico perchè mi è successo più volte)!

Installazione

searchreplace

Lo script non va installato va solamente piazzato nella cartella root  del tuo WordPress, ovvero dove si trova il file wp-config.php (in questo modo prenderà i dati per connettersi al database in uso da questa installazione di WordPress).

searchreplace2

Come funziona

searchreplacev2

Questo script quindi ti chiederà su quali tabelle agire (apparirà un alert per ricordarti di selezionare le tabelle giuste se stai lavorando su un multisite).

searchreplace3

Successivamente si arriverà in una finestra di inserimento dove metterai il termine da sostiture e il rimpiazzo.
Con l’opzione Dry eseguirà solo una prova di rimpiazzo fornendo alla fine dell’operazione il numero di testi che verrebbero sostituiti.

searchreplace4

Se non spunti questa opzione verrà eseguito questo rimpiazzo direttamente nel database.

Ricordati di cancellarlo!

Questo script alla fine dell’operazione non è più necessario quindi come suggerisce anche lo script cancella il file dopo che hai fatto le tue modifiche (anche per evitare che qualche birichino faccia danni al tuo sito).

Non solo WordPress

Questo script funziona anche su Joomla o Drupal perchè utilizzano anche loro la serializzazione all’interno del database!

CLI Version

Esiste anche la versione da linea di comando ma non l’ho mai usata perché è più utile per la creazione di procedure automatizzate.

Considerazioni

Questo script mi ha semplificato molto il mio workflow di deploy di un sito da locale a remoto (adesso sono passato a WordMove che approfondirò in un’altro articolo).

Spesso sui gruppi di supporto per WordPress leggo di gente che cerca soluzioni ti questo tipo ma non essendo pratica di programmazione non conosce questi tool che alla fine sono proprio semplici!

Grazie a questo tool ho potuto fare delle modifiche anche a database molto grandi con 15000 articoli senza problemi (naturalmente il tempo richiesto per l’elaborazione cambia).

Lascia il tuo Pensiero