✅ Nowości, motywy, wtyczki WEB i WordPress. Tutaj dzielimy się wskazówkami i najlepszymi rozwiązaniami dla stron internetowych.

Jak odrzucić bloki Gutenberga

7

Jednym z najczęstszych problemów z aktualizacją motywu lub wtyczki za pomocą bloków Gutenberga jest to, że wprowadzenie zmian w kodzie bloku spowoduje uszkodzenie wszystkich istniejących postów korzystających z tego bloku. Na szczęście WordPress oferuje rozwiązanie; sposób na deprecjonowanie bloków. W tym poście przyjrzymy się, jak to zrobić.

Jeśli pracowałeś z tworzeniem bloków, zanim prawdopodobnie zapoznałeś się z tym błędem bloku, gdy dodałeś blok, a później zmieniłeś savefunkcję.

Jak odrzucić bloki Gutenberga

Dzieje się tak, ponieważ WordPress porównuje zapisany blok w bazie danych z bieżącym kodem savefunkcji w twoim bloku i nie pasują do siebie. WordPress nie jest w stanie załatać różnicy. W większości przypadków możesz kliknąć trzy kropki na bloku i wybrać „Próba odzyskania bloku". Jeśli zmiany wprowadzone w savefunkcji były niewielkie (np. zmiana klasy), WordPress jest w stanie przywrócić blok. Najgorszy scenariusz d trzeba kliknąć „Konwertuj do HTML”, a utracisz editfunkcjonalność swojego bloku.Oczywiście nie możemy oczekiwać, że użytkownicy naszego kodu blokowego będą ręcznie znajdować wszystkie posty korzystające z tego bloku i wykonywać te kroki dla każdego z nich.

Dlatego zanim wprowadzimy aktualizacje savefunkcji, dodamy trochę kodu, aby powiedzieć WordPressowi, jak radzić sobie ze starą zawartością, która została zapisana za pomocą starej savefunkcji.

Przejdźmy do kodu!

To całkiem proste. Krótko mówiąc, musimy zrobić; dodać deprecatedwłaściwość do registerBlockType()wywołania funkcji. Ta właściwość oczekuje tablicy. Oznacza to, że możesz wielokrotnie deprecjonować blok, podając wiele wpisów w tablicy. Każda amortyzacja jest definiowana jako obiekt posiadający pełną attributesnieruchomość i (starą) savefunkcję.

Innymi słowy, definiujesz deprecatedwłaściwość jako tablicę, a następnie kopiujesz do niej swój blok attributesi savefunkcję. Musisz uwzględnić atrybuty, nawet jeśli nic w nich nie zmieniasz w aktualizacji. Nie musisz uwzględniać editfunkcji w amortyzacji.

Przejdźmy do tego na bardziej praktycznym przykładzie.

Załóżmy, że nasz kod blokowy wygląda mniej więcej tak. Funkcja editjest wykluczona, ponieważ nie musimy się nią zajmować w amortyzacji.

Następnie załóżmy, że chcemy dokonać zmian w obu atrybutach oraz zapisać i uniknąć łamania istniejących bloków. Dodajemy deprecatedwłaściwość i kopiujemy do niej całość attributesoraz savejako element tablicy. Wtedy możemy dokonywać wszelkich zmian w attributeslub/i savefunkcji.

Po skompilowaniu tego kodu możesz znaleźć istniejący post przy użyciu starego kodu blokowego i nie powinieneś otrzymać zepsutego kodu!

WordPress zorientuje się, że blok używa naszego przestarzałego kodu i ładuje zawartość za pomocą przestarzałego savekodu. Gdy dokonasz zmian w bloku i zaktualizujesz post, blok zostanie zapisany przy użyciu nowej savefunkcji.

Bardziej zaawansowana amortyzacja i dalsze czytanie

Powyższy przykład kodu jest najbardziej podstawową formą amortyzacji. WordPress obsługuje więcej funkcji, takich jak dołączanie migrate, supportsa nawet przypisywanie stałych (pomyśl o numerach wersji) do przestarzałego kodu. Zajrzyj do dokumentacji WordPressa dotyczącej amortyzacji blokowej.

Źródło nagrywania: awhitepixel.com

Ta strona korzysta z plików cookie, aby poprawić Twoje wrażenia. Zakładamy, że nie masz nic przeciwko, ale możesz zrezygnować, jeśli chcesz. Akceptuję Więcej szczegółów