160 - Czym zaskoczył mnie Gutenberg przy migracji contentu?
W 160 odcinku opowiadam o zaskoczeniach jakie czekały na mnie przy migracji contentu zbudowanego na Gutenbergu i ACF
Mówiłem tam o często spotykanych błędach i o tym, jak możemy zrobić pewne rzeczy lepiej, aby zapewnić sobie bezproblemową współpracę z naszym WordPressem. Nagranie z tego webinaru będzie na kanale Cyberfolks na YouTube, więc możesz tam zajrzeć i jeśli jeszcze go nie ma, to na pewno w ciągu kilku dni się tam pojawi. Na początku może nakreślę kontekst sytuacji, w której Gutenberg mnie zaskoczył. Są dwie strony. Stara strona, która jest taką stroną produkcyjną, zbudowaną w oparciu o Gutenberga i bloki Gutenbergowe, takie customowe, ale zbudowane w oparciu o ACF i ACF Blocks. Nie są tam natywne, reactowe bloki, tylko po prostu jest użyty ACF do tworzenia tych bloków.
No i jest nowa strona, która obecnie powstaje. I moim zadaniem było przygotowanie skryptów migracyjnych, które zmigrują nam content z jednego WordPressa ze starej strony, która jest na Gutenbergu z ACF-em do nowej strony, gdzie mamy już wszystkie bloki pisane w taki natywny, reactowy sposób. I tak z grubsza rzecz biorąc, sprawa wygląda tak, że w starym i w nowym systemie mamy podobne bloki, natomiast nie jest to 1 do 1 odpowiednik bloku z jednego do drugiego systemu. To znaczy, te bloki mają podobne funkcje, natomiast różnią się różnymi szczegółami. Czasem są niemal identyczne, ale czasem mają np. mniej pól.
Jest po prostu funkcja, która przyjmuje tablicę, która jest wynikiem działania funkcji parseBlocks i finalnie generuje po prostu HTML-a z tymi wszystkimi JSON-ami, który jest zapisywany w kontencie w nowym WordPressie. I tutaj z pomocą przyszłymi dwie funkcje, w zasadzie klasa wp-block-parser-block. I tutaj podajemy wszystkie parametry danego bloku, czyli po pierwsze jego nazwę oczywiście, a oprócz tego wszystkie parametry, które mają być zachowane właśnie w tym JSON-ie plus strukturę HTML-ową, która ma zostać zapisana. Potem wynik działania tej klasy wrzucamy w funkcję serialize block i otrzymujemy już takiego HTML-a, którego możemy wrzucić do bazy danych i potem jeśli wejdziemy sobie w edycję takiego wpisu już w panelu edycji tego nowego WordPressa, mamy normalnie blok, tak jakbyśmy wyklikali go ręcznie i pododawali wszystkie parametry do niego.
Pokazano wszystkie 3 dopasowania. Transkrypcja generowana automatycznie i niesprawdzana ręcznie — może zawierać błędy.
Kliknij, aby znaleźć fragmenty, w których pada.
W 160 odcinku opowiadam o zaskoczeniach jakie czekały na mnie przy migracji contentu zbudowanego na Gutenbergu i ACF