✅ WEB- och WordPress -nyheter, teman, plugins. Här delar vi tips och bästa webbplatslösningar.

Hur man tar bort Gutenberg-block

9

Ett av de vanligaste problemen med att uppdatera ett tema eller plugin med Gutenberg-block är att ändringar i blockkoden kommer att bryta alla befintliga inlägg som använder det blocket. Som tur är erbjuder WordPress en lösning; ett sätt att avskaffa block. I det här inlägget ska vi titta på hur man gör detta.

Om du har arbetat med blockutveckling tidigare är du förmodligen bekant med detta blockfel när du har lagt till ett block och sedan ändrat savefunktionen.

Hur man tar bort Gutenberg-block

Detta beror på att WordPress jämför det sparade blocket i databasen med den aktuella koden i savefunktionen i ditt block, och de stämmer inte överens. WordPress kan inte korrigera skillnaden. I de flesta fall kan du klicka på de tre prickarna på blocket och välja "Attempt Block Recovery". Om ändringarna som gjorts i savefunktionen var små (t.ex. en klassändring) kan WordPress återställa blocket. Worst case scenario you’ d måste klicka på "Konvertera till HTML" och du kommer att förlora blockets editfunktionalitet. Vi kan naturligtvis inte förvänta oss att användarna av vår blockkod manuellt ska hitta alla inlägg som använder detta block och utföra dessa steg för var och en.

Så innan vi gör uppdateringar av savefunktionen lägger vi till lite kod för att berätta för WordPress hur man hanterar gammalt innehåll som har sparats med den gamla savefunktionen.

Låt oss komma in i koden!

Det är faktiskt ganska enkelt. Kort sagt vad vi behöver göra är; lägg till en deprecatedegenskap till registerBlockType()funktionsanropet. Den här egenskapen förväntar sig en array. Det betyder att du kan fasa ut ett block flera gånger genom att tillhandahålla flera poster i arrayen. Varje avskrivning definieras som ett objekt som innehåller hela attributesegenskapen och den (gamla) savefunktionen.

Med andra ord, du definierar en deprecatedegenskap som en array och sedan kopierar du ditt blocks attributesoch savefunktion in i den. Du måste inkludera attribut även om du inte ändrar något i dem i uppdateringen. Du behöver inte ta med editfunktionen i avskrivningen.

Låt oss gå om detta i ett mer praktiskt exempel.

Anta att vår blockkod ser ut ungefär så här. Funktionen editär exkluderad då vi inte behöver hantera den i avskrivningar.

Låt oss då anta att vi vill göra ändringar i båda attributen och spara och undvika att bryta befintliga block. Vi lägger till deprecatedegenskapen och kopierar hela attributesoch savesom ett arrayelement in i den. Sedan är vi fria att göra eventuella ändringar i attributeseller/och savefunktion.

Med den här koden kompilerad kan du hitta ett befintligt inlägg med den gamla blockkoden, och du bör inte få någon trasig kod!

WordPress kommer att ta reda på att blocket använder vår föråldrade kod och laddar innehållet med den föråldrade savekoden. När du gör ändringar i blocket och uppdaterar inlägget kommer blocket att sparas med den nya savefunktionen.

Mer avancerad avskrivning och vidare läsning

Ovanstående kodexempel är den mest grundläggande formen för avskrivning. WordPress stöder mer funktionalitet, som att inkludera migrateoch supportstill och med tilldela konstanter (tänk versionsnummer) till din föråldrade kod. Ta en titt på WordPress dokumentation om blockavskrivning.

Inspelningskälla: awhitepixel.com

Denna webbplats använder cookies för att förbättra din upplevelse. Vi antar att du är ok med detta, men du kan välja bort det om du vill. Jag accepterar Fler detaljer