Prüfen ob ein Gutenberg-Block existiert
Das Arbeiten mit Gutenberg-Blöcken in WordPress ist schon heute ein wichtiger Bestandteil und wir zukünftiger immer wichtiger für Theme und Plugin-Entwickler. Blöcke werden in WordPress immer im post_content
the_content() gespeichert.
Je nach Anwendungsfall müssen wir prüfen ob ein bestimmter Block im Inhalt eines Beitrags oder auf einer Seite existiert bzw. nicht vorhanden ist. Dadurch können wir viele Dinge in der Entwicklung von Themes und Plugins besser beeinflussen.
Wie finde ich heraus ob ein bestimmter Gutenberg Block im Inhalt vorhanden ist?
Für diesen Fall können wir uns der WordPress-Funktion parse_blocks( $post->post_content )
bedienen. Diese Funktion durchläuft den Inhalt einer Seite oder eines Beitrags und ist uns dabei hilfreich, herauszufinden ob ein bestimmter Gutenberg-Block existiert.
Die folgende Funktion gibt „true“ zurück, wenn der Block vorhanden ist oder „false“, wenn dieser Block nicht auf der entsprechenden Seite existiert:
Wie wenden wir diese Funktion an?
Damit wir diese Funktion anwenden können, benötigen wir den eindeutigen Blocknamen. Für den WordPress Cover-Block ist dieser core/cover
. Denn für alle Standard-Blöcke nutzen wir das Schema core/blockname
.
Wenn wir wissen möchten, ob ein bestimmter Beitrag oder eine Seite einen Gutenberg-Block enthält, ohne das wir uns gerade dort befinden, dann können wir das durch die zusätzliche Angabe der $post_id
herausfinden:
Natürlich funktioniert diese Funktion nicht nur für die WordPress Standard-Blöcke. Auch die Existenz zusätzlicher Blöcke, welche durch Plugins hinzugefügt werden, können wir so herausfinden. Im Fall von ACF Blöcken greifen wir dafür auf das Schema acf/blockname
zurück: