Egyedi blokkot olyan ismétlődő, speciális funkcióhoz fejlesszen, amelyet az alapblokkok és a minták nem fednek le biztonságosan. Tervezzen minimális számú, érthető vezérlőelemet, akadálymentes előnézetet, validációt és biztonságos nyilvános kimenetet. A mentett formátumot verziózza, és készítse elő a migrációt, mielőtt megváltoztatja a struktúrát.
Az egyedi Gutenberg-blokk speciális felületet biztosít a szerkesztőnek olyan tartalomhoz, amelyet a szokásos blokkok nem tudnak biztonságosan kifejezni. Ez lehet például kalkulátor, összekapcsolt referencialista, műszaki táblázat vagy interaktív elem. Az egyedi blokk fejlesztése azonban hosszú távú kompatibilitással, a mentett tartalom migrációival, valamint a szerkesztő és a nyilvános oldal tesztelésével jár. Nem megfelelő válasz minden eltérő szekcióra.
Először ellenőrizni kell, hogy a feladatot nem oldja-e meg a core blokkok kombinációja, egy minta vagy egy egyszerű mezőkkel rendelkező, szerveroldalon renderelt komponens. Saját blok akkor indokolt, ha az ismétlődő struktúra validációt, dinamikus adatokat vagy védett viselkedést igényel. A minőséget nem egy látványos beállítási panel határozza meg, hanem az, hogy a szerkesztő technikai ismeretek nélkül is helyes tartalmat tud-e létrehozni.
Ellenőrizze, valóban szüksége van-e egyéni blokkra
Írja le a tartalmi feladatot és a korlátozásokat. Ha a szerkesztőnek ismételten kell címet, szöveget és gombot beillesztenie egy ismert elrendezésben, a core blokkokból álló minta egyszerűbb megoldás. Ha konkrét referenciákat választ ki adatbázisból, strukturált paramétereket ad meg vagy számítást indít, egy egyedi blokk csökkentheti a hibák számát. A döntést több valós felhasználási esettel támassza alá, ne egyetlen tervezői képernyővel.
Hasonlítsa össze a sablonban lévő egyéni mezőt és a külön tartalomtípust is. Egy gyakran frissülő névsort nem érdemes kézzel, több tucat blokkban tárolni; jobb kiválasztani egy forrást, és abból generálni a kimenetet. A kritikus üzleti logikát különítse el egy bővítménybe vagy szolgáltatásba, a blokk pedig maradjon felület. A téma így a funkciók és az adatok elvesztése nélkül módosíthatja a megjelenést.
Tervezze a szerkesztői felületet a feladat köré
Használja a WordPress ismert vezérlőelemeit és a szerkesztők által használt elnevezéseket. A leggyakoribb értékek közvetlenül a vászonra, a haladó beállítások az oldalsávba kerüljenek. Minden opciónak legyen alapértelmezett értéke és értelmes üres állapota. Ha egy blokknak hatvan megjelenési beállításra van szüksége, valószínűleg egy dizájnrendszert próbál pótolni egyetlen tartalmi funkció helyett.
A szerkesztőben látható előnézetnek kellően hasonlítania kell a nyilvános eredményhez, de nem kell kockázatos külső műveleteket végrehajtania. Jelenítse meg a betöltési állapotot, a hibát, a nulla találatot és a korlátozott jogosultságot is. A szerkesztőnek billentyűzettel is képesnek kell lennie a blokk kijelölésére, áthelyezésére és eltávolítására. Az utasításokat ne csak a placeholderbe írja, amely a gépelés megkezdésekor eltűnik.
- Minimális vezérlőelem egy feladathoz
- Érthető alapértelmezett értékek
- Hibák és üres állapot előnézete
- Billentyűzettel elérhető vezérlés
Válasszon statikus vagy dinamikus renderelést
A statikus blokk a végső HTML-t a tartalomba menti. Gyorsan megjeleníthető és kevésbé függ a szerveroldali logikától, de a mentett markup módosítása a régi verziók elavulttá nyilvánítását és migrálását teheti szükségessé. Olyan tartalomhoz illik, amely a közzététel után szerkesztői mentés nélkül nem változik. A kimenetnek szemantikusnak és a hiányzó attribútumokkal szemben ellenállónak kell maradnia.
A dinamikus blokk az attribútumokat tárolja, a HTML-t pedig megjelenítéskor a szerveren állítja elő. Aktuális adatokhoz, lekérdezésekhez vagy központilag változó kimenethez alkalmas. Biztonságos escapelést, gyorsítótárazást és teljesítményellenőrzést igényel. A szerkesztőbeli előnézet jogosultsággal hívhatja a REST interfészt. A döntést az adatok élettartama alapján hozza meg, ne a fejlesztő személyes preferenciája szerint.
Védje a tárolt tartalom kompatibilitását
Az attribútumoknak egyértelmű típussal és stabil jelentéssel kell rendelkezniük. Egy mező átnevezése, az érték forrásának megváltoztatása vagy a csomagoló elem eltávolítása érvénytelen blokkra vonatkozó figyelmeztetést okozhat. Statikus kimenet esetén őrizze meg a régi verziót a deprecations között, és készítsen transzformációt. A migrációt minden támogatott verzióval létrehozott tartalmon tesztelje, ne csak egy új, üres blokkon.
Ne tároljon az attribútumokban olyan származtatott adatot, amely megbízhatóan kiszámítható, sem titkokat vagy érzékeny API-válaszokat. Egy blokk megszüntetésekor kínáljon átalakítást core blokkokká vagy az olvasható tartalom megőrzését. Dokumentálja a tulajdonjogot és a függőségeket. A weboldal nem veszíthet el szöveget csak azért, mert megváltozott egy plugin vagy egy komponens neve.
- Az attribútumok állandó jelentése
- Deprecation a régi tárolt markuphoz
- Átalakítás blokk cseréjekor
- Tesztek a korábbi tartalmon
Tesztelje a teljesítményt, a biztonságot és a kiadást
A szkripteket és stílusokat csak ott töltse be, ahol a blokkot használják, ha az architektúra lehetővé teszi a felosztást. A szerveroldali lekérdezést ne hívja meg minden rekordnál külön; használjon megfelelő gyorsítótárat és korlátokat. Minden bemenetet validáljon, az URL-eket és a szöveget escapelje, adminisztratív műveletnél pedig ellenőrizze a jogosultságot és a nonce-t is. A külső hívásnak legyen időkorlátja és biztonságos tartalék állapota.
Az automatizált tesztek lefedik a szerializációt, az attribútumok migrációját és a szerveroldali kimenetet. Manuálisan ellenőrizze a beszúrást, a másolást, a visszavonást, a duplikálást, az újbóli megnyitást és a témaváltást is. A blokk-plugin kiadását verziózza, és először stagingkörnyezetben, a valós tartalom másolatán ellenőrizze. A szerkesztőknek röviden magyarázza el az új célt, valamint azokat a helyzeteket, amikor a megszokott mintát kell használniuk.
Gyakori kérdések
Jobb egy egyedi Gutenberg-blokk, mint egy shortcode?
A vizuális szerkesztéshez gyakran jobb előnézetet, validált mezőket és könnyebb felfedezhetőséget kínál. A shortcode egy szűk, meglévő esetben továbbra is megfelelő lehet, de paramétereit és hibáit a szerkesztő nehezebben látja. A migrációt a tartalom alapján kell megítélni.
Az egyedi blokk a témába vagy egy bővítménybe tartozzon?
A funkciót vagy adatot hordozó blokk általában bővítménybe tartozik, hogy túlélje a téma cseréjét. A dizajnhoz szorosan kötődő, tisztán megjelenítési változat a téma része lehet. A határt a jelentés és az élettartam alapján határozza meg.
Mi történik a régi blokkokkal a kód módosítása után?
Nem kompatibilis változtatás esetén érvénytelenként jelölődhetnek meg, vagy a régi kimenetet jeleníthetik meg. Ezért meg kell őrizni a deprecationöket, a transzformációkat és a korábbi tartalom tesztmintáit, a változtatást pedig stagingen keresztül kell telepíteni.