
Uwaga: Ten artykuł jest dla osób zainteresowanych tym, jak WordPress technicznie przechowuje swoje dane. Jeśli po prostu chcesz używać WP Staging, nie musisz czytać ani rozumieć poniższego artykułu.
Rdzeń WordPress i większość jego pluginów przechowują dane w bazie danych w określonym formacie, tak zwanej reprezentacji danych zserializowanych. Ten typ jest używany do przechowywania lub przekazywania wartości PHP bez utraty ich typu lub struktury. Bez zagłębiania się tutaj w szczegóły techniczne, ważne jest, aby wiedzieć, że reprezentacja danych zserializowanych może obsługiwać prawie wszystkie typy danych, takie jak tablice, ciągi znaków i obiekty. Przyjrzyjmy się, jak pluginy i motywy WordPress zwykle przechowują wartości w bazie danych. Po tym zrozumiesz, dlaczego po prostu nie możemy wykonać prostego wyszukiwania i zamiany w bazie danych, gdy klonujemy WordPress z jednej lokalizacji do innej. Powiedzmy, że motyw tworzy tablicę do przechowywania koloru i ścieżki: W czystym PHP wygląda to tak:
$settings = array(
'color' => 'green',
'path' => 'https://domain.com'
);
Gdy ta tablica jest przechowywana w bazie danych, jest konwertowana na reprezentację zserializowaną i wygląda tak:
a:2:{s:5:"color";s:5:"green";s:4:"path";s:18:"https://domain.com";}
Zaletą jest to, że reprezentacja danych zserializowanych może być przechowywana w bazie danych znacznie bardziej efektywnie niż tablica PHP. Wadą jest to, że danych zserializowanych nie można zmienić prostym wyszukaniem i zamianą, jak zrobiłbyś to w edytorze tekstu.
Jeśli po prostu zmienisz kolor lub ścieżkę, reprezentacja danych zserializowanych zostałaby uszkodzona i nie mogłaby być już używana przez PHP. W rezultacie plugin przestałby działać lub, co znacznie gorsze, WordPress również zostałby uszkodzony.
Powód jest taki, że dane zserializowane przechowują również długość wartości w reprezentacji danych zserializowanych.
Jeśli zmienisz ścieżkę z domain.com na host.com, musisz również zmienić wartość s:18 na s:16, ponieważ https://host.com zawiera tylko 16 znaków zamiast 18.
Jeśli zrobisz to programowo, dane zserializowane muszą zostać przekonwertowane z powrotem na tablicę. Stamtąd można je zastąpić, po prostu zmieniając wartości tablicy.
Jak już zauważasz, robienie tego ręcznie z setkami lub nawet tysiącami wartości w bazie danych WordPress jest niemożliwym zadaniem. Dlatego WP Staging wykonuje całą tę deserializację i serializację automatycznie za Ciebie. Wykonując ten krok, zastępuje odpowiednie wartości nowymi, gdy tworzony jest klon WordPress.
