Her er en oversigt over, hvordan blok-plugins kan bruge WordPress-hooks, specifikt den nye Block Hooks-funktion introduceret i WordPress 6.4:
1. Blokkrogeprincipper:
- Automatisk placering: Blokke kan automatisk placere sig selv, når en anden blok føjes til indholdet, hvilket eliminerer behovet for manuel indsættelse.
- Synlighed og kontrol: Den indsatte blok er synlig i editoren, og brugerne bevarer kontrollen over dens automatiske indsættelse, hvilket giver mulighed for en tilpasset redigeringsoplevelse.
2. Begrænsninger og overvejelser:
- Blokkroge virker kun i umodificerede skabeloner, skabelondele og mønstre leveret af temaer. De fungerer ikke i indlægsindhold, ændrede skabeloner/dele eller brugergenererede mønstre.
- Fra og med WordPress 6.4 fungerer automatisk indsættelse ikke med blokke, der har en brugerdefineret gem-funktion, da det kan resultere i blokvalideringsfejl. Udviklere bør bruge dynamiske blokke for kompatibilitet.
3. To måder at hægte blokke på:
en. Brug af `block.json`:
- Giver en enkel måde at tilslutte en tredjepartsblok, men med begrænset fleksibilitet.
- Egenskaben `blockHooks` i `block.json` gør det muligt at specificere positionen af den tilsluttede blok (før, efter, første barn, sidste barn).
b. Brug af filteret `hooked_block_types`:
- Tilbyder mere fleksibilitet sammenlignet med `block.json`, hvilket tillader betinget hooking baseret på skabelonen, skabelondelen eller mønsteret.
- Tilbagekaldsfunktionen for `hooked_block_types` modtager parametre som de tilsluttede blokke, position, ankerblok og kontekst.
4. Overvejelser for udviklere:
- Hooked blokke vises i webstedseditoren, hvilket giver brugerne kontrol over deres placering. Udviklere kan ikke tvinge en bloks position, hvis brugeren ønsker at flytte den.
- Tilslutning af statiske blokke (med brugerdefinerede gemmefunktioner) anbefales ikke, da det kan forårsage blokvalideringsfejl. Dynamiske blokke er det foretrukne valg til Block Hooks.
- Udviklere bør sikre, at deres tilsluttede blokke er kompatible med den aktuelle WordPress-version og dens Block Hooks API.
Sammenfattende giver den nye Block Hooks-funktion i WordPress 6.4 og senere en effektiv måde for blok-plugins til automatisk at indsætte deres blokke på bestemte steder, mens de stadig giver brugerne mulighed for at kontrollere placeringen af disse blokke i webstedseditoren.
Citater:[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/