Hier ist eine Zusammenfassung, wie Block-Plugins WordPress-Hooks verwenden können, insbesondere die neue Block-Hooks-Funktion, die in WordPress 6.4 eingeführt wurde:
1. Block-Hooks-Prinzipien:
- Automatische Platzierung: Blöcke können sich automatisch positionieren, wenn ein weiterer Block zum Inhalt hinzugefügt wird, sodass kein manuelles Einfügen erforderlich ist.
- Sichtbarkeit und Kontrolle: Der eingefügte Block ist im Editor sichtbar und Benutzer behalten die Kontrolle über seine automatische Einfügung, was ein individuelles Bearbeitungserlebnis ermöglicht.
2. Einschränkungen und Überlegungen:
- Block-Hooks funktionieren nur in unveränderten Vorlagen, Vorlagenteilen und Mustern, die von Themes bereitgestellt werden. Sie funktionieren nicht in Beitragsinhalten, geänderten Vorlagen/Teilen oder benutzergenerierten Mustern.
– Ab WordPress 6.4 funktioniert das automatische Einfügen nicht mit Blöcken, die über eine benutzerdefinierte Speicherfunktion verfügen, da es zu Fehlern bei der Blockvalidierung führen kann. Entwickler sollten aus Kompatibilitätsgründen dynamische Blöcke verwenden.
3. Zwei Möglichkeiten, Blöcke einzuhängen:
A. Verwendung von „block.json“:
– Bietet eine einfache Möglichkeit, einen Block eines Drittanbieters einzubinden, jedoch mit eingeschränkter Flexibilität.
– Die Eigenschaft „blockHooks“ in „block.json“ ermöglicht die Angabe der Position des Hook-Blocks (vor, nach, erstes untergeordnetes Element, letztes untergeordnetes Element).
B. Verwendung des Filters „hooked_block_types“:
– Bietet mehr Flexibilität im Vergleich zu „block.json“ und ermöglicht bedingtes Hooking basierend auf der Vorlage, dem Vorlagenteil oder dem Muster.
– Die Rückruffunktion für „hooked_block_types“ empfängt Parameter wie die Hooked-Blöcke, die Position, den Ankerblock und den Kontext.
4. Überlegungen für Entwickler:
- Hakenblöcke werden im Site-Editor angezeigt und geben Benutzern die Kontrolle über ihre Platzierung. Entwickler können die Position eines Blocks nicht erzwingen, wenn der Benutzer ihn verschieben möchte.
- Das Einbinden statischer Blöcke (mit benutzerdefinierten Speicherfunktionen) wird nicht empfohlen, da dies zu Fehlern bei der Blockvalidierung führen kann. Dynamische Blöcke sind die bevorzugte Wahl für Block Hooks.
– Entwickler sollten sicherstellen, dass ihre Hooked-Blöcke mit der aktuellen WordPress-Version und der Block-Hooks-API kompatibel sind.
Zusammenfassend lässt sich sagen, dass die neue Block-Hooks-Funktion in WordPress 6.4 und höher eine leistungsstarke Möglichkeit für Block-Plugins bietet, ihre Blöcke automatisch an bestimmten Stellen einzufügen, während Benutzer gleichzeitig die Platzierung dieser Blöcke im Site-Editor steuern können.
Zitate:[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/