Standardinhalte in WordPress mit Block-Templates definieren
Mit Block-Templates können Standard-Inhalte und Platzhalter-Texte für einen Post Type festgelegt werden. Zuvor definierte Blöcke werden automatisch geladen, wenn ein neuer Inhalt erstellt wird.

Block-Templates ermöglichen vorgefertigte Kombinationen von Inhaltselementen. Sie können als Vorlagen für wiederkehrende Inhaltsmuster von Seiten und Beiträgen verwendet werden. Auf diese Weise müssen Layouts für gleichartige Seiten nicht jedes Mal zeitaufwändig und fehleranfällig von Hand neu erstellt werden. Die Verwendung einheitlicher Blockkombinationen gewährleistet zudem ein konsistentes Erscheinungsbild. Ähnlich wie bei Patterns können auch in Templates Blöcke mit vordefinierten Einstellungen und Platzhalterinhalten versehen werden.
Block-Templates anlegen
Ein Block-Template besteht aus einem Array, das die Namen der Blöcke in der Reihenfolge enthält, in der sie verwendet werden sollen. Um das Template auf einen Posttyp anzuwenden, muss es diesem in der Datei functions.php
zugewiesen werden.
Soll z.B. beim Standard-Posttyp »Post« unter der Hauptüberschrift immer ein einleitender Textabschnitt, gefolgt von einem Bild und einer weiteren Überschrift erscheinen, kann folgender Code verwendet werden:
/**
* Block-Template für Post, mit Core-Blöcken
*/
add_action( 'init', function () {
$post_type_object = get_post_type_object('post');
$post_type_object->template = array(
array('core/paragraph'),
array('core/image'),
array('core/heading'),
);
});
Wenn die Vorlage auf einen Custom Post Type angewendet werden soll, muss »post« durch den entsprechenden Posttype-Key ersetzt werden. Alternativ kann das Array bei der Erstellung eines Custom Post Types als Wert des Arguments »template« an die Funktion register_post_type()
übergeben werden.
Patterns und ACF-Blöcke in Templates
Analog zu den Blöcken des WordPress-Cores können auch eigene Blöcke unter Berücksichtigung des Präfixes sowie Patterns unter Verwendung des Slugs eingebunden werden.
/**
* Block-Template für Post, mit Custom-Block und Pattern
*/
add_action( 'init', function () {
$post_type_object = get_post_type_object('post');
$post_type_object->template = array(
array('kb/custom-block'),
array('core/pattern', array(
'slug' => 'kb/custom-pattern',
)),
);
});
Einstellungen und Platzhalterinhalte mitgeben
Damit die Blöcke nicht mit den Standardeinstellungen eingefügt werden, können über ein optionales Array entsprechende Konfigurationen für die Blöcke definiert werden. Auf diese Weise können auch Platzhaltertexte hinterlegt werden, um z.B. der Redaktion den Zweck eines Blocks mitzuteilen.
Das Beispiel mit einem einleitenden Textabschnitt, einem anschließenden Bild und einer weiteren Überschrift kann so präzisiert werden:
/**
* Block-Template für Einstellungen und Platzhaltertexten
*/
add_action( 'init', function () {
$post_type_object = get_post_type_object('post');
$post_type_object->template = array(
array('core/paragraph', array(
'placeholder' => 'Das ist der einleitende Text.'
)),
array('core/image', array(
'align' => 'wide'
)),
array('core/heading', array(
'placeholder' => 'Das ist die erste Unterüberschrift (h2).',
'level' => 2,
)),
);
});
Standardmäßig können die durch Blockvorlagen eingefügten Blöcke im Editierbereich verschoben, gelöscht und um weitere Blöcke ergänzt werden. Sollen hier restriktivere Regeln gelten, kann dies über die Post-Type-Eigenschaft template_lock
erfolgen: insert
verhindert das Hinzufügen oder Entfernen, erlaubt aber das Verschieben der erzeugten Blöcke. all
verhindert jegliche Manipulation; Blöcke können dann nicht verschoben, hinzugefügt oder entfernt werden.
/**
* Template-Lock für Block-Templates
*/
$post_type_object->template_lock = 'all';