Die drei Phasen von Gutenberg in die Zukunft von WordPress

Der neue Gutenberg Editor ist nur der Anfang des revolutionären Projekts und stellt die erste Phase in die Zukunft von WordPress dar. In diesem Beitrag zeige ich, was nach dem Release von WordPress 5.0 in den nächsten Phasen von Gutenberg alles realisiert werden könnte.

Rückblick zur State of the Word

Der Co-Founder von WordPress, Matt Mullenweg, hält am Ende jeden Jahres seine Rede zum aktuellen Stand von WordPress – die State of the Word. Den kompletten Auftritt von Matt beim WordCamp US in Nashville im Dezember 2017 könnt ihr euch im folgenden Video ansehen oder die praktische Zusammenfassung bei KrautPress nachlesen.

Am Ende seines Talks stellte Mullenweg seine Ziele und den Fokus für 2018 vor. Dieser wird wie in 2017 weiter auf dem Projekt Gutenberg liegen.

Er spricht dabei von der Umsetzung in drei aufeinanderfolgenden Phasen:

  1. Gutenberg Editing
  2. Gutenberg Customization
  3. Gutenberg Theme

Nachdem ich bisher schon mehrmals vom aktuellen Stand des Gutenberg-Projekts berichtet habe, möchte ich heute mehr einen Blick in die Zukunft wagen. Wie könnten vor allem die nächsten Phasen von Gutenberg aussehen?

Phase 1: Der Gutenberg Editor

Momentan befinden wir uns in der ersten Phase. In dieser wird der neue Gutenberg Editor realisiert, welcher mit Version 5.0 noch in diesem Jahr veröffentlicht werden soll.

Dabei wird das Grundprinzip der Blocks eingeführt. Aus diesen Blocks wird in Zukunft der Content eines Posts oder Page „zusammengebaut“. Während es anfangs nur nach einem neuen WordPress Editor aussah, wurden bald Features eingeführt, die an Page Builder erinnern, z.B. ein Block für mehrere Spalten.

Der Container, indem Blocks eingefügt und genutzt werden können, ist der Content-Bereich eines WordPress Posts. Die Blocks werden im Theme an der Stelle angezeigt, in der die Funktion the_content() aufgerufen wird.

Phase 2: Gutenberg Customization

In Phase 2 werden die Blocks auf weitere Bereiche als nur dem Content von Posts ausgerollt. Das Ziel wird sein, mit Blocks das komplette Layout der Website erstellen zu können.

Alles wird zum Block

Deshalb werden Blocks erst einmal weitere Elemente von WordPress ersetzen. Vermutlich werden zuerst Widgets und Menüs durch entsprechende Blocks ausgetauscht und können im Customizer hinzugefügt und bearbeitet werden.

Darauf aufbauend wird wahrscheinlich das komplette Theme-Layout einer Website mit Blocks umsetzbar sein. Deshalb werden nahezu alle Elemente einer Website als Block verfügbar gemacht werden. Blocks für das Logo, Header-Bild, Seiten-Titel, Pagination, Kommentare, Autor Bio usw.

Ein Zitat zur Phase 2 von Gutenberg lässt sich beispielsweise im Forum finden:

Phase 2 of Gutenberg replaces widgets, menus, and allows for theme layout in the customizer. This means that users can learn things once, and developers can write things once, and have them work all over the site instead of (for example) creating a shortcode for the editor, a TinyMCE plugin to have an interface for it, and a completely separate widget to do the same thing, and a separate interface for that.

Matt Mullenweg im WordPress.org Forum

Auch hier wird wieder ein Ziel von Gutenberg deutlich. Die zahlreichen Konzepte von WordPress wie beispielsweise Menüs, Widgets, Editor und Shortcodes in einem einheitlichen Interface zu vereinen – den neuen Blocks.

Blocks können überall eingefügt werden

Neben der Einführung vieler neuer Blocks in der zweiten Phase werden auch die Möglichkeiten erweitert werden, wo Blocks genutzt werden können.

Meine Vermutung ist, dass Themes dabei eine wichtige Rolle spielen werden. Im Moment können Themes verschiedene Widget-Bereiche definieren oder auch Positionen festlegen, in denen Navigationsmenüs angezeigt werden können. In Zukunft werden diese Bereiche stattdessen das Einfügen von Blocks erlauben.

Blocks verlassen damit den Kontext des Editors und sind nicht mehr länger auf den Content von Beiträgen oder statischen Seiten eingeschränkt. Das Tool, um Blocks an verschiedenen Stellen der Website hinzuzufügen und zu bearbeiten, wird der Customizer werden.

Außerdem gehe ich davon aus, dass Theme Entwickler in Zukunft auch in Template-Dateien mit neuen Funktionen neue Bereiche zum Einfügen von Blocks bereitstellen können, ähnlich wie derzeit die Widget-Bereiche. Eine Möglichkeit ist zum Beispiel auf Github im Issue zu Block Templates beschrieben.

Ein Template für Blocks könnte im Theme dann so aussehen:

<body>

<?php
    do_blocks( array(
        // Theme header: "blocks/header/index.php"
        do_block( 'theme/header' );
        // A core text block
        do_block( 'core/text', array( 'placeholder' => 'Fill some text here...' ) );
        do_block( 'core/post-title', array( 'id' => get_post_id() ) );
        // A post block: renders the_content
        do_block( 'core/post', array( 'id' => get_post_id() ) );
        // Theme footer: "my-theme/blocks/footer/index.php"
        do_block( 'theme/footer' );
    ) );
?>

</body>

Momentan rufen Themes sehr viele unterschiedliche Funktionen auf, um Content darzustellen. Widgets werden mit dynamic_sidebar() dargestellt, Menüs mit wp_nav_menu() angezeigt, Content mit the_content() ausgegeben.

Wenn die derzeitigen Konzepte von WordPress als Blocks vereinheitlicht sind, könnte das Theme der Zukunft nur noch do_blocks() zur Ausgabe von Blocks benötigen, statt unzähliger Template-Funktionen. Das ist zum jetzigen Zeitpunkt aber pure Spekulation meinerseits.

Phase 3: Gutenberg Theme

In der letzten Phase von Gutenberg soll ein neues Default-Theme für WordPress entstehen, sprich TwentyNineteen oder TwentyTwenty. Wahrscheinlich findet diese dritte Phase sogar relativ parallel mit Phase 2 statt und beide werden mit einem Release veröffentlicht.

Mit Phase 2 können Themes wahrscheinlich zu großen Teilen mit Blocks umgesetzt werden. Statt Menüs, Widgets und Posts sind dann nahezu alle Bestandteile als Blocks möglich und die Template-Dateien des Themes geben nur noch die Anordnung und Layout der Blocks vor.

Das Problem: Es existieren noch keine Themes, welche die ganzen neuen Möglichkeiten nutzen können. Deshalb ist es nur logisch, dass in der letzten Phase ein neues Default-Theme kommt, welches auf den neuen Blocks basiert und alle Features von Gutenberg ausreizt.

Matt Mullenweg über die 3 Phasen von Gutenberg

In einem Interview der AdvancedWP Facebook Gruppe mit Matt Mullenweg stellt dieser die drei Phasen noch genauer als in der State of Word vor. Ihr findet diese Passage ab Minute 17.

Hier seine Aussage im Interview in Textform:

The phases – so I think – are important to understand, so I’m just gonna repeat that. Right now everything we’re doing is phase one of Gutenberg. So that’s saying we’re going to replace the Editor with this block-based new API driven interface. But the blocks are kind of like the most magical thing. That’s like why it gets really exciting. Because once we have these blocks in the Editor, we think – actually way faster than Gutenberg – we can bring them to other parts. So the next step is saying „Can we replace widgets, then menus with blocks?“. So essentially those become blocks. And you kind of can lay out  your sidebar, footer areas, and in the future your entire theme with these blocks.

Fazit

Während Phase 1 sich dem Ende nähert und bald abgeschlossen wird, stehen uns die nächsten Phasen noch komplett bevor. Deshalb existieren dafür momentan nur einige Ideen von verschiedenen Entwicklern. Welche Features genau umgesetzt werden und wie diese wirklich aussehen, wird sich erst in Phase 2 zeigen.

Die grobe Richtung lässt sich aber schon jetzt erkennen. Je mehr ich mich in den letzten Wochen mit Gutenberg beschäftigt habe, desto klarer wurde mir, wie fundamental die Änderungen für WordPress sein werden und der Editor eigentlich nur der Anfang ist.

Für mich als Theme Entwickler werden Phase 2 und 3 auf alle Fälle erst so richtig spannend. Über die Auswirkungen auf WordPress Themes werde ich bald noch einen weiteren Beitrag schreiben. Daran interessiert? Dann abonniere am Besten meinen Newsletter.

Ich wünsche euch allen Frohe Ostern!