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';
Lieber Konstantin,
zuerst einmal ein herzliches Dankeschön für diesen tiefgreifenden und aufschlussreichen Blog Post! Als Online Marketing Agentur sind wir ständig auf der Suche nach effizienten Möglichkeiten, unsere Kunden-Websites zu optimieren, und dieser Beitrag hat uns mal wieder daran erinnert, warum WordPress eine solche Powerhouse-Plattform ist.
Block-Templates sind ein absolutes Game-Changer für uns! Wir alle wissen, wie zeitaufwändig es sein kann, das gleiche Layout für verschiedene Seiten immer wieder zu erstellen, ganz zu schweigen von den kleinen Fehlern, die sich einschleichen können. Aber mit dieser Vorlagenfunktion? Ein Traum! Wir können uns jetzt darauf konzentrieren, kreativer zu sein, anstatt uns ständig mit wiederholenden Aufgaben zu befassen.
Dein Beispielcode ist Gold wert. Für Einsteiger gibt es einen klaren und verständlichen Überblick, und für uns „alte Hasen“ ist es eine schöne Auffrischung. Besonders geschätzt haben wir den Abschnitt über die Einbindung von eigenen Blöcken und Patterns – etwas, das wir definitiv ausprobieren werden.
Der Hinweis auf Platzhalterinhalte ist ebenfalls genial. Wie oft haben wir schon einen Block erstellt und uns gewünscht, der Redaktion genau zu sagen, was dort hingehört? Nun, jetzt können wir es tun.
Zum Abschluss, Konstantin, ein dickes Lob für den letzten Abschnitt über das „Template-Lock“. Sicherheit und Konsistenz sind in unserem Geschäft alles, und zu wissen, dass wir die Kontrolle darüber haben, wie Blöcke manipuliert werden können, gibt uns und unseren Kunden ein großes Maß an Sicherheit.
Mach weiter so mit solchen nützlichen Inhalten, und wir werden sicherlich weiterhin treue Leser deines Blogs sein! Und wer weiß, vielleicht sehen wir uns ja bei einer deiner Online-Schulungen wieder – sie klingen fantastisch!
Herzliche Grüße aus Neuss
Šukri