Wenn wir Blöcke im WordPress Gutenberg-Editor anlegen, werden diese im post_content the_content() gespeichert und ausgegeben. Doch wie können wir den Inhalt von bestimmten Blöcken außerhalb des Inhalts ausgeben? Das zeigt euch dieser Beitrag.

Wie erhalte ich einen Block außerhalb des Inhalts?

Wir bedienen uns der WordPress-Funktion parse_blocks( $post->post_content ) um auf den Inhalt aller vorhandenen Blöcke zuzugreifen. Das ermöglicht uns einen speziellen Block auch außerhalb des eigentlichen Inhaltsbereiches aufzurufen.

Die folgende Funktion wordpress_get_block() ist uns hierbei behilflich. Wenn wir einen bestimmten Block innerhalb einer Seite bekommen möchten, übergeben wir den Blocknamen an diese Funktion mit wordpress_get_block( 'core/cover' ). Wenn wir allerdings einen speziellen Block von einer anderen Seite ausgeben lassen wollen, benötigen wir zusätzlich die $post_id und wenden die Funktion mit wordpress_get_block( 'core/cover', $post_id ) an:

Alle Blöcke eines bestimmten Typs erhalten

Das obere Beispiel liefert uns immer nur das erste Ergebnis eines vorhandenen Blocks. Blöcke können aber auch mehrfach vorkommen. Wenn wir also alle Blöcke abfangen möchten, die ein Beitrag oder eine Seite enthält, dann hilft uns dabei die folgende Funktion:

Einen Block mit bestimmten Namen und einer bestimmten Eigenschaft erhalten

Wir könnten diese Vorgehensweise noch erweitern und neben dem Blocknamen auch eine bestimmte Eigenschaft abfragen, die ein Block enthalten muss um angezeigt werden zu können. Dafür können wir ebenfalls die oberen Funktionen als Grundlage nutzen und innerhalb der foreach() Schleife, weitere Bedingungen abfragen, die uns die Ausgabe von parse_blocks( $post->post_content ) ermöglicht.

Wie kann ich einen Block außerhalb des Inhalts ausgeben und anschließend im Inhalt entfernen?

Wenn wir uns auf der einen und selben Seite befinden, auf der wir einen bestimmten Block außerhalb des Inhalts platzieren wollen, macht es Sinn, diesen nicht noch ein zweites Mal im Hauptinhalt anzuzeigen. Denn sonst wäre der selbe Block zwei- oder mehrfach auf der selben Seite vorhanden.

Wir wir anschließend auch einen bestimmten Block innerhalb von post_content entfernen können, zeigt das folgende Beispiel unter Verwendung des WordPress-Filters render_block:

Gutenberg Block Inhalt außerhalb von post_content erhalten Wertung: 5 / 5 (5Stimmen)
Der Autor
Veröffentlicht von
Martin Jost
Weiterlesen
Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.