Zde je souhrn toho, jak mohou blokové pluginy používat háčky WordPress, konkrétně nová funkce Block Hooks představená ve WordPressu 6.4:
1. Principy blokových háčků:
- Automatické umístění: Bloky se mohou automaticky umístit, když je k obsahu přidán další blok, což eliminuje potřebu ručního vkládání.
- Viditelnost a kontrola: Vložený blok je viditelný v editoru a uživatelé si ponechají kontrolu nad jeho automatickým vkládáním, což umožňuje přizpůsobené úpravy.
2. Omezení a úvahy:
- Blokové háky fungují pouze v neupravených šablonách, částech šablon a vzorech poskytovaných motivy. Nefungují v obsahu příspěvků, upravených šablonách/částech nebo vzorech vytvořených uživatelem.
- Od WordPress 6.4 nefunguje automatické vkládání s bloky, které mají vlastní funkci ukládání, protože může vést k chybám při ověřování bloků. Vývojáři by měli kvůli kompatibilitě používat dynamické bloky.
3. Dva způsoby, jak zaháknout bloky:
A. Pomocí `block.json`:
- Poskytuje jednoduchý způsob, jak připojit blok třetí strany, ale s omezenou flexibilitou.
- Vlastnost `blockHooks` v `block.json` umožňuje specifikovat polohu zavěšeného bloku (před, po, první potomek, poslední potomek).
b. Pomocí filtru `hooked_block_types`:
- Nabízí větší flexibilitu ve srovnání s `block.json` a umožňuje podmíněné zavěšení na základě šablony, části šablony nebo vzoru.
- Funkce zpětného volání pro `hooked_block_types` přijímá parametry, jako jsou zavěšené bloky, pozice, kotevní blok a kontext.
4. Úvahy pro vývojáře:
- V editoru stránek se objeví fixované bloky, které uživatelům dávají kontrolu nad jejich umístěním. Vývojáři nemohou vynutit pozici bloku, pokud jej uživatel chce přesunout.
- Zavěšení statických bloků (s vlastními funkcemi ukládání) se nedoporučuje, protože může způsobit chyby ověření bloků. Dynamické bloky jsou preferovanou volbou pro blokové háky.
- Vývojáři by se měli ujistit, že jejich hákové bloky jsou kompatibilní s aktuální verzí WordPress a jeho Block Hooks API.
Stručně řečeno, nová funkce Block Hooks ve WordPressu 6.4 a novějších poskytuje účinný způsob, jak blokové pluginy automaticky vkládat své bloky do konkrétních umístění, přičemž uživatelům stále umožňuje řídit umístění těchto bloků v editoru webu.
Citace:[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/