
Nota: Questo articolo è destinato alle persone interessate al modo in cui WordPress memorizza tecnicamente i suoi dati. Se ti piace semplicemente usare WP Staging, non è necessario leggere o comprendere l’articolo seguente.
Il core di WordPress e la maggior parte dei suoi plugin memorizzano i dati nel database in un formato particolare, la cosiddetta rappresentazione dei dati serializzati. Questo tipo viene utilizzato per memorizzare o passare valori PHP senza perdere il loro tipo o la loro struttura. Senza diventare troppo tecnici qui, è essenziale sapere che la rappresentazione dei dati serializzati può gestire quasi tutti i tipi di dati come array, stringhe e oggetti. Diamo un’occhiata a come i plugin e i temi WordPress memorizzano tipicamente i valori nel database. Dopo di che, capirai perché non possiamo semplicemente fare una ricerca e sostituzione attraverso il database quando cloniamo WordPress da una posizione all’altra. Diciamo che un tema sta creando un array per memorizzare un colore e un percorso: In puro PHP, appare così:
$settings = array(
'color' => 'green',
'path' => 'https://domain.com'
);
Quando quell’array viene memorizzato nel database, viene convertito nella rappresentazione serializzata e appare così:
a:2:{s:5:"color";s:5:"green";s:4:"path";s:18:"https://domain.com";}
Il vantaggio è che la rappresentazione dei dati serializzati può essere memorizzata nel database in modo molto più efficace dell’array PHP. Lo svantaggio è che i dati serializzati non possono essere modificati con una semplice ricerca e sostituzione come faresti con un editor di testo.
Se cambi semplicemente il colore o il percorso, la rappresentazione dei dati serializzati sarebbe rotta e non potrebbe più essere utilizzata da PHP. Di conseguenza, il plugin non funzionerebbe più o, molto peggio, anche WordPress sarebbe rotto.
Il motivo è che i dati serializzati memorizzano anche la lunghezza dei valori nella rappresentazione dei dati serializzati.
Se cambi il percorso da domain.com a host.com, devi anche cambiare il valore di s:18 in s:16 perché https://host.com contiene solo 16 caratteri invece di 18.
Se lo fai in modo programmatico, i dati serializzati devono essere riconvertiti in un array. Da lì, possono essere sostituiti semplicemente cambiando i valori dell’array.
Come noti già, farlo manualmente con centinaia o addirittura migliaia di valori in un database WordPress è un compito impossibile. Ecco perché WP Staging esegue tutta quella deserializzazione e serializzazione automaticamente per te. Durante questo passaggio, sostituisce i valori corrispondenti con i nuovi quando viene creato un clone di WordPress.
