Gutenberg 23.7: Galerie-Modus, Editor-Fixes und neue APIs
Gutenberg 23.7 ist verfügbar. Das Release konzentriert sich auf sichtbare Korrekturen im Block-Editor, präzisiert den dynamischen Modus des Galerie-Blocks und ergänzt zahlreiche Änderungen für Komponenten, APIs, Medien und die Entwicklungswerkzeuge.
Gutenberg 23.7 testen
Du kannst Gutenberg 23.7 direkt im Gutenberg-Plugin-Verzeichnis installieren oder die Version im WordPress Playground ausprobieren.
Sichtbare Verbesserungen im Block-Editor
Mehrere Korrekturen räumen Probleme im Editor-Layout aus dem Weg. Floated Blocks überlagern keine Sticky Blocks mehr. Der Appender für leere Blöcke erscheint innerhalb von Blöcken mit eigener Toolbar an der richtigen Stelle. Der Pullquote-Block übernimmt im Editor nun eine selbst gesetzte Zeilenhöhe und stimmt damit mit dem Frontend überein. Außerdem nutzt die Geräte-Vorschau für Mobilgeräte und Tablets wieder feste Höhen.

Dynamischer Galerie-Modus: „Detach“ statt unklarer Konvertierung
Der dynamische Modus des Galerie-Blocks kam mit Gutenberg 23.6 hinzu. Seine Toolbar-Schaltfläche „Convert to images“ beschrieb jedoch nicht eindeutig, welche Folge der Schritt hat. Gutenberg 23.7 benennt sie in „Detach“ um und zeigt vor dem Trennen der Bilder ein Modal mit einer Erklärung an. Die Umwandlung des dynamischen Galerie-Modus erzeugt zudem nur noch einen einzelnen Undo-Schritt.


Weitere Änderungen, die du im Alltag bemerkst
Die Vererbung von Global Styles bleibt experimentell, ist jetzt aber ausdrücklich Opt-in. Du aktivierst die Oberfläche auf der Seite für Gutenberg-Experimente. Der Block-Inspector zeigt geerbte Werte der Global Styles in seinen Steuerelementen an, und für Blöcke, die Links sind, löst er auch die Link-Element-Stile auf.
Der Math-Block nutzt für LaTeX jetzt ValidatedTextareaControl. Parserfehler unterbrechen dich nicht mehr bei jedem Tastendruck: Das Feedback erscheint erst, nachdem das Feld erstmals den Fokus verloren hat. Die Ansage für Screenreader bei jedem einzelnen Tastendruck entfällt.
Combobox, Select und SelectControl erhalten die Subkomponenten Group und GroupLabel. Damit lassen sich gruppierte Optionen innerhalb der Familien von Item-Popups einheitlich zusammensetzen. Zusätzlich bekommt der Post Editor die Einstellung responsiveEditingEnabled, mit der du die Option für Responsive Styles ausblenden kannst.
Erweiterungen in Komponenten und Block-Bibliothek
Die folgenden Verbesserungen erweitern Oberflächen, Blöcke und interne Editor-Bausteine.
- Base Styles erlauben es, die Farbe des Focus Rings in
outset-ring__focuszu überschreiben (#80587). - Das Widget-Dashboard misst den Header-Fit und dokumentiert den Chrome-Bereich (#80423).
- Widget Primitives werden als Script Module ausgeliefert (#80149).
- DataViews und die Font Library geben Suchfeldern eine feste Breite, damit das Layout nicht springt (#80315).
- DataViewsPicker unterstützt Bereichsauswahl mit Umschalt+Klick in Tabellen-, Raster- und Aktivitätsansicht (#80413).
- Die Sandbox-Komponente akzeptiert eine
sandbox-Property (#69617). - Number-Inputs blenden ihre nativen Spin Controls aus (#80646).
- SearchControl rendert das Suffix nur, wenn eines vorhanden ist (#80356).
- Die UI erhält die Primitive
Autocomplete.Row(#80490). - Die Block-Bibliothek deckt die End-to-End-User-Story für den Table-of-Contents-Block ab (#80199).
- Die Font Library passt die Schriftgröße des Seiten-Navigations-Selectors an DataViews an (#80617).
- Die Verwaltung gemeinsamer Presets wird aus Schatten und Schriftgrößen herausgelöst (#79810).
Fehlerkorrekturen im Editor und in Blöcken
Neben den sichtbaren Korrekturen behebt das Release Fehler beim Schreiben, bei der Auswahl, bei Undo und in zahlreichen Core-Blöcken.
- Die Versionierung der View-Configuration-API wurde aktualisiert; Merges mit unpassender Struktur werden abgelehnt, die Semantik leerer Arrays ist definiert und
nullwird aus angehängten Mitgliedern entfernt (#80319, #80571). createInterpolateElementbehandelt nicht passende schließende Tags robust (#80618).render_block_core_video()berücksichtigt nun auch nicht kleingeschriebeneVIDEO-Tags (#80537).- Cover- und Accordion-Blöcke verlassen ihre Interaktion bei Enter (#77301).
- Der List-Block behält beim Einrücken den Typ geordneter Listen bei (#75353).
- Der Media Editor zeigt beim Laden einer zugeschnittenen Datei einen Ladezustand; das redundante Flag
__heicUploadSupportentfällt (#80460, #80452). - Im Navigation-Block erscheint innerhalb von Template Parts wieder die Option „Add block“ in der Link-UI (#78427).
- Der Playlist-Block kürzt die Beschriftung seiner Track-Toolbar-Schaltfläche (#80759).
- Die Einstellung „Offset“ im Query-Loop-Block erhält einen Übersetzungskontext (#80582).
- Der Social-Link-Block entfernt ein überflüssiges schließendes Tag aus dem Tumblr-Icon-Markup (#80257).
- Das Hintergrundbild-Control zeigt keinen doppelten Focus Ring mehr, und Block Tools positioniert den leeren Block-Appender korrekt (#80671, #80592).
- Beim Vorwärtslöschen leerer Blöcke bleibt die Cursorposition korrekt; Preset-Round-Trip-Tests importieren nach der Konsolidierung der Preset-Utilities wieder richtig (#77525, #80589).
- Bei zwei Farb-Presets mit gleichem Hexwert speichert und zeigt Global Styles das richtige Preset (#80497).
- RTC verhindert, dass die Synchronisierung gesteuerter Blöcke Undo abfängt (#80503).
- Editierbare Rich-Text-Elemente tragen wieder kein
tabIndex, wodurch Umschalt+Klick-Auswahl funktioniert; Input-Transforms laufen nicht ohneonReplace, und das Einfügen von Dateien lässt den Paste Handler nicht mehr abstürzen (#80651, #80978). - Ohne native Auswahl erweitern Umschalt+Pfeiltasten die Blockauswahl. Umschalt+Klick gilt als Geste zur Mehrfachauswahl, und Bewegungen des Carets scrollen bei Blöcken über Viewport-Höhe nicht mehr die Seite (#80687, #80286).
Post Editor, Zusammenarbeit und Medien
- Felder mit eigenem Undo überlassen Undo wieder dem Browser. Meta Boxes verwenden Überschriftenstile wie Gutenberg-Panels, und Notices laufen in
ThemeProvidermit einem Eckenradius von 0 (#80768, #79523). - Notes erfassen den Zielblock vor dem Speichern einer Block-Notiz, registrieren das Inline-Format beim Import, melden Speichererfolge einheitlich und gleichen die Sidebar-Auswahl mit dem Inline-Marker unter dem Caret ab (#80690, #80748).
- Post Lock wechselt für ausgesperrte Betrachter nicht fälschlich zu „Someone else has taken over“. Unter iOS entfällt der Jumping-Hack, stattdessen kommt Typewriter hinzu (#79997).
- DataForm lässt Karten- und Detail-Validierung nicht mehr den Fokus übernehmen. GradientPicker wählt über den Slug, damit identische Gradienten-Presets ihre Identität behalten (#80685).
- Lange animierte GIFs bleiben beim Upload nicht hängen: Für Standbilder dekodiert Gutenberg nur das erste Frame. Media Templates erzwingen bei
IMG-Tags keincrossoriginmehr (#80260). - Der Build synchronisiert die Preload-Feldliste für Page Templates mit
core-data; die Media REST API übernimmt die Größenprüfung für Uploads aus URL-Pfaden (#80648). - RTC komprimiert beim Serialisieren und bewahrt ungespeicherte Änderungen anderer Bearbeiter, wenn ein anderer Nutzer speichert (#80707).
Accessibility und Performance
- Die Alignment-Controls verarbeiten ihre Properties besser. In der Navigation aktualisiert sich
aria-expandedbei Hover auf ein Untermenü innerhalb eines Overlays (#63696). - Rich Text liest in
ownsSelectiondas AttributcontentEditableund vermeidet dadurch erzwungene Layout-Berechnungen. Außerdem behebt das Release eine Regression bei der Tippgeschwindigkeit (#80549). - FlatTermSelector lädt Begriffe nicht unnötig erneut. Core Data verschiebt
EntitiesSavedStateaus dem Editor (#80623).
Experimente, Dokumentation und Code-Qualität
Die experimentellen Dashboard Widgets härten die Bereinigung von Action- und Help-Link-URLs. In theme.json nivelliert :where() die Spezifität von Preset-Klassen auf Blockebene.
- Die Dokumentation ergänzt Hinweise für
nvm use, die schrittweise Ermittlung von Agent-Anweisungen und Skills, fehlende globale Dokumentation im Table of Contents sowie File- und Class-Docblocks fürWP_Icon_Collections_Registry(#80755, #80442). - Weitere Docs erklären
getBlockmit Inner-Block-Controllern, Backports in den WordPress-Core, Rückgabewerte von View-Configuration-Filtern, die iframe-Hinweise für Gutenberg 23.6, Admin-Farbschema-Beispiele in Storybook sowie Dialog-vs-Drawer-Design (#80773, #80642, #80569, #80744). - ESLint ergänzt fehlende nicht empfohlene Komponenten zur Denylist.
webpack-dev-serveraktualisiert auf^5.2.1, und Changelog-Prüfungen funktionieren für Pull Requests aus Forks (#80754, #80538). - Die Interactivity API strukturiert Directives als selbstregistrierende Module um. RTC nutzt
array_any()für die Prüfung neuerer Komprimierungen undstr_contains()inWP_Sync_Config(#79975, #80476). - Autocomplete verknüpft die Vorschlagsliste über
aria-controlsundaria-haspopup; ExternalLink nutzt den gemeinsamen Focus-Ring-Mixin, unduseSelectionPropswird layoutunabhängig (#80403, #80677). - Disabled, FormTokenField und SearchControl migrieren zu SCSS-Modulen. Die Pakete aktualisieren
date-fnsauf 4.4.0, Color.js auf 0.7.1 und entfernen eine Behelfslösung fürcolorjs.io(#80643, #80474, #80762). - Die Block-Bibliothek schützt vor Attributwerten, die Fehler auslösen, macht
editableRootzu einer privaten Block-Einstellung, übernimmt Korrekturen aus WordPress-Develop 7.0 und verwendet beim Page-List-Block den Null-Koaleszenzoperator fürparentPageID(#80558, #75985). - Weitere Bereinigungen entfernen ein redundantes Jest-jsdom-Pragma, unnötige Größen-Properties in Form Controls und den Standardabsatz aus dem Tab-Panel-Template. Table of Contents nutzt
str_contains()stattstrpos()(#80676, #80418). - Duotone-Utilities werden in der Global-Styles-Engine zusammengeführt, doppelte Preset-Utilities reduziert und URLInput in eine Function Component überführt (#80598, #80721).
- Der Post Editor prüft bei SVG-Icons auf
viewBox; Notes brechen ein laufendes Hover-Highlight ab, wenn der Fokus einen Notiz-Thread verlässt.memizeaktualisiert auf 2.1.1 (#80273, #80764). - Global Styles benennt Unit-Test-Dateien um und entfernt die Endung
.spec.js. Der Site Editor ersetzt die Theme-Nutzung im Canvas Loader durch CSS, und der Code für Echtzeit-Zusammenarbeit zieht nachlib/experimental/collaborationum (#80711, #80469).
Build, Werkzeuge und Tests
- Die Release-Dokumentation zeigt GitHubs neue Release-Label-Oberfläche. Cherry-Picking setzt künftig eine funktionierende GitHub CLI voraus (#80567).
- Das Build-System erhält ein unabhängiges React-18-Vendor-Paket, verarbeitet Projektpfade mit Leerzeichen im Dev Script und bezieht extrahierte Styles in den Asset-Version-Hash ein (#80367, #80601).
- Ein End-to-End-Kompatibilitätstest deckt unter React 19 das boolesche Attribut
inertab. Der Build löst Prettier bei isoliertem Layout explizit auf, Storybook entfernt Emotion als JSX-Importquelle, und WP Build vermeidet eine Endlosschleife bei Worker-Builds (#80397, #80647). - Die Vorabprüfung des npm-Zugriffs wird besser. Jest korrigiert das Ignore-Pattern für TypeScript-Declaration-Dateien und aktualisiert auf die nicht abwärtskompatible Version 30 (#80334, #80767).
- Flakiness.io läuft nur im kanonischen Gutenberg-Repository. Performance-Tests melden für „Selecting blocks“ nicht mehr 0 ms, RTC korrigiert einen Test für gelöschte Benutzer in Multisite, und der Site Editor erhält End-to-End-Tests für erweiterbare View Configuration (#80524, #80577).
- Base Styles entfernen den Parameter für die Akzentfarbe aus
input-control; außerdem entfällt die private Theme-Komponente (#80595).
Was du jetzt prüfen solltest
Installiere Gutenberg 23.7 in einer Staging-Umgebung und prüfe besonders Galerie-Blöcke im dynamischen Modus, eigene Pullquote-Zeilenhöhen sowie deine Vorschau für Tablet und Mobilgeräte. Wenn du Themes oder Plugins mit Global Styles entwickelst, aktiviere die Vererbungsoberfläche nur gezielt über die Gutenberg-Experimente und teste die Darstellung geerbter Presets im Block-Inspector.
Referenzen / Quellen
Julia Schneider
Leiterin der deutschen Redaktion, Softwarearchitektin und technische Mentorin. Java- und Spring-Framework-Expertin. Präzision und Qualität über alles.
Alle Beiträge