Iată un rezumat al modului în care pluginurile bloc pot utiliza cârlige WordPress, în special noua caracteristică Block Hooks introdusă în WordPress 6.4:
1. Principii pentru cârlige de bloc:
- Plasare automată: Blocurile se pot poziționa automat atunci când un alt bloc este adăugat la conținut, eliminând necesitatea inserării manuale.
- Vizibilitate și control: Blocul inserat este vizibil în editor, iar utilizatorii păstrează controlul asupra inserării sale automate, permițând o experiență de editare personalizată.
2. Limitări și considerații:
- Block Hooks funcționează numai în șabloane nemodificate, părți de șablon și modele furnizate de teme. Ele nu funcționează în conținutul postării, șabloane/părți modificate sau modele generate de utilizator.
- Începând cu WordPress 6.4, inserarea automată nu funcționează cu blocurile care au o funcție personalizată de salvare, deoarece poate duce la erori de validare a blocurilor. Dezvoltatorii ar trebui să folosească blocuri dinamice pentru compatibilitate.
3. Două moduri de a lega blocurile:
A. Folosind `block.json`:
- Oferă o modalitate simplă de a conecta un bloc terță parte, dar cu flexibilitate limitată.
- Proprietatea `blockHooks` din `block.json` permite specificarea pozitiei blocului hooked (inainte, dupa, primul copil, ultimul copil).
b. Folosind filtrul `hooked_block_types`:
- Oferă mai multă flexibilitate în comparație cu `block.json`, permițând conectarea condiționată pe baza șablonului, a părții șablonului sau a modelului.
- Funcția de apel invers pentru `hooked_block_types` primește parametri precum blocurile hooked, poziția, blocul de ancorare și contextul.
4. Considerații pentru dezvoltatori:
- Blocurile conectate vor apărea în Editorul site-ului, oferind utilizatorilor control asupra plasării lor. Dezvoltatorii nu pot forța poziția unui bloc dacă utilizatorul dorește să-l mute.
- Conectarea blocurilor statice (cu funcții personalizate de salvare) nu este recomandată, deoarece poate cauza erori de validare a blocurilor. Blocurile dinamice sunt alegerea preferată pentru Block Hooks.
- Dezvoltatorii ar trebui să se asigure că blocurile lor conectate sunt compatibile cu versiunea actuală WordPress și API-ul său Block Hooks.
În rezumat, noua funcție Block Hooks din WordPress 6.4 și ulterioare oferă o modalitate puternică pentru plugin-urile de blocuri de a-și insera automat blocurile în anumite locații, permițând totuși utilizatorilor să controleze plasarea acelor blocuri în Editorul site-ului.
Citate:[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/