Íme egy összefoglaló arról, hogy a blokkbővítmények hogyan használhatják a WordPress hook-okat, különösen a WordPress 6.4-ben bevezetett új Block Hooks funkciót:
1. Block Hooks elvek:
- Automatikus elhelyezés: A blokkok automatikusan elhelyezkedhetnek, amikor újabb blokkot adnak a tartalomhoz, így nincs szükség manuális beszúrásra.
- Láthatóság és vezérlés: A beszúrt blokk látható a szerkesztőben, és a felhasználók megtartják az ellenőrzést az automatikus beszúrás felett, ami lehetővé teszi a testreszabott szerkesztési élményt.
2. Korlátozások és szempontok:
- A Block Hooks csak a nem módosított sablonokban, sablonrészekben és témák által biztosított mintákban működik. Nem működnek bejegyzéstartalomban, módosított sablonokban/részekben vagy felhasználók által generált mintákban.
- A WordPress 6.4-től kezdve az automatikus beillesztés nem működik olyan blokkokkal, amelyek egyéni mentési funkcióval rendelkeznek, mivel blokkellenőrzési hibákat eredményezhet. A fejlesztőknek dinamikus blokkokat kell használniuk a kompatibilitás érdekében.
3. A blokkok rögzítésének két módja:
a. A `block.json` használata:
- Egyszerű módot biztosít harmadik féltől származó blokkok csatlakoztatására, de korlátozott rugalmassággal.
- A `blockHooks` tulajdonság a `block.json` fájlban lehetővé teszi a beakasztott blokk helyzetének meghatározását (előtt, után, első gyermek, utolsó gyermek).
b. A `hoked_block_types` szűrő használata:
- Nagyobb rugalmasságot kínál a "block.json" fájlhoz képest, lehetővé téve a feltételes összeakasztást a sablon, a sablonrész vagy a minta alapján.
- A `hoked_block_types` visszahívási függvénye olyan paramétereket kap, mint a akasztott blokkok, pozíció, horgonyblokk és kontextus.
4. Fejlesztőkkel kapcsolatos szempontok:
- A rögzített blokkok megjelennek a Webhelyszerkesztőben, így a felhasználók irányíthatják az elhelyezésüket. A fejlesztők nem kényszeríthetik ki a blokk pozícióját, ha a felhasználó át akarja helyezni.
- Statikus blokkok beakasztása (egyedi mentési funkciókkal) nem javasolt, mert blokkellenőrzési hibákat okozhat. A dinamikus blokkok a legjobb választás a Block Hooks számára.
- A fejlesztőknek meg kell győződniük arról, hogy akasztott blokkjaik kompatibilisek a jelenlegi WordPress verzióval és annak Block Hooks API-jával.
Összefoglalva, a WordPress 6.4-es és újabb verzióinak új Block Hooks funkciója hatékony módot biztosít a blokkbővítmények számára, hogy automatikusan beillesszék blokkjaikat meghatározott helyekre, miközben továbbra is lehetővé teszi a felhasználók számára, hogy szabályozzák a blokkok elhelyezését a Webhelyszerkesztőben.
Idézetek:[1] https://github.com/WordPress/gutenberg/issues/54904
[2] https://kinsta.com/blog/wordpress-hooks/
[3] https://essential-blocks.com/block-hooks-everything-you-need-to-know/
[4] https://www.youtube.com/watch?v=ezPHiyhhaoQ
[5] https://developer.wordpress.org/block-editor/reference-guides/packages/packages-hooks/