
Note : Cet article s’adresse aux personnes intéressées par la manière dont WordPress stocke techniquement ses données. Si vous souhaitez simplement utiliser WP Staging, vous n’avez pas besoin de lire ou de comprendre l’article ci-dessous.
Le cœur de WordPress et la plupart de ses plugins stockent les données dans la base de données dans un format particulier, appelé représentation de données sérialisées. Ce type est utilisé pour stocker ou transmettre des valeurs PHP sans perdre leur type ou leur structure. Sans entrer dans les détails techniques ici, il est essentiel de savoir que la représentation de données sérialisées peut gérer presque tous les types de données comme les tableaux, les chaînes et les objets. Voyons comment les plugins et les thèmes WordPress stockent généralement les valeurs dans la base de données. Après cela, vous comprendrez pourquoi nous ne pouvons pas simplement effectuer une recherche et un remplacement dans la base de données lorsque nous clonons WordPress d’un endroit à un autre. Disons qu’un thème crée un tableau pour stocker une couleur et un chemin : En pur PHP, cela ressemble à ceci :
$settings = array(
'color' => 'green',
'path' => 'https://domain.com'
);
Lorsque ce tableau est stocké dans la base de données, il est converti en représentation sérialisée et ressemble à ceci :
a:2:{s:5:"color";s:5:"green";s:4:"path";s:18:"https://domain.com";}
L’avantage est que la représentation de données sérialisées peut être stockée dans la base de données beaucoup plus efficacement que le tableau PHP. L’inconvénient est que les données sérialisées ne peuvent pas être modifiées par une simple recherche et remplacement comme vous le feriez avec un éditeur de texte.
Si vous changez simplement la couleur ou le chemin, la représentation de données sérialisées serait brisée et ne pourrait plus être utilisée par PHP. Par conséquent, le plugin ne fonctionnerait plus, ou bien pire, WordPress serait également cassé.
La raison est que les données sérialisées stockent également la longueur des valeurs dans la représentation de données sérialisées.
Si vous modifiez le chemin de domain.com vers host.com, vous devez également changer la valeur de s:18 à s:16 car https://host.com ne contient que 16 caractères au lieu de 18.
Si vous le faites de manière programmatique, les données sérialisées doivent être reconverties en tableau. À partir de là, elles peuvent être remplacées en modifiant simplement les valeurs du tableau.
Comme vous le remarquez déjà, faire cela manuellement avec des centaines voire des milliers de valeurs dans une base de données WordPress est une tâche impossible. C’est pourquoi WP Staging effectue toute cette désérialisation et sérialisation automatiquement pour vous. Pendant cette étape, il remplace les valeurs correspondantes par les nouvelles lorsqu’un clone WordPress est créé.
