WordPress und Full Site Editing

Mit WordPress 5.9 hat das Full Site Editing nun vollständig Einzug in den Block Editor erhalten. Das bedeutet, Ihr könnt nun auch die globalen Elemente eures WordPress-Themes in einem Theme Editor editieren. Dazu gehören z.B. das Logo, das Seitenmenü, Footer- und Header-Elemente.

In dem Theme Editor können dann auch Farbpaletten angepaßt und zugewiesen werden. Dadurch wird sich in Zukunft der gesamte Bereich „Design“ im Admin-Bereich verändern. Der Customizer wird von einem FSE-Theme nicht mehr benötigt. Ebenso der Menü-Editor. Beide Bereich wandern in den neuen Theme Editor. Auch die Theme-Struktur an sich ist komplett verändert. Auch die einzelnen Theme-Templates basieren dann auf Blöcken.

Und keine Angst: Voraussetzung für diese ganzen Änderungen ist ein Theme, das Full Site Editing unterstützt. Ansonsten bleibt fast alles beim Alten.

Unter folgendem Link findet Ihr alle Themes im WordPress Respository, die diese Funktion schon unterstützen.

Am sinnvollsten ist es, erstmal einen Blick auf das neue Default-Theme „Twenty Twenty-Two“ zu werfen. Auch das „Aino“ Theme von elma studio nutzt diese Funktion schon.

» Twenty Twenty-Two von wordpress.org
» Aino Theme von elma studio

Durch die neuen Editier-Möglichkeiten gibt es im Block-Editor nun eine ganze Kategorie von neuen Blocks, zu finden unter „Theme“.

Die Liste umfasst zum jetzigen Zeitpunkt ungefähr 20 Blöcke, die nur relevant sind, wenn das vorhandene Theme Full Site Editing unterstützt.

Daher halte ich es für sinnvoll, die Blöcke im jeweiligen Theme auszublenden, wenn das Theme nicht die notwendige Funktionalität mitbringt. Zwar kann auch jeder Benutzer die Blöcke von Hand in den Voreinstellungen ein- bzw. ausblenden. Aber die Lösung über das jeweilige Theme erscheint mir dennoch praktikabler.

In folgendem Gist findet Ihr die Funktion, die die Blöcke der Kategorie „Theme“ ausblendet.

Die Funktion nutzt den Filter „allowed_block_types_all“, der es erlaubt, nur bestimmte Blöcke zu registrieren.

Leider gibt der Filter nicht einen Array mit allen registrierten Blöcken zurück, sondern nur den Booleanschen Wert „wahr“ (also 1), wenn alle Blöcke erlaubt sind. Daher erzeugen wir eine Liste mit allen vorhandenen Blöcken über den Zugriff auf die Klasse WP_Block_Type_Registry. Diese Liste gehen wird durch und fügen jeden Block, der nicht zur Kategorie „Theme“ gehört, unserer Liste der erlaubten Blöcke hinzu.