WordPress 6.9 steht vor der Tür und wir können es kaum erwarten, einige der vielen fantastischen neuen Funktionen zu nutzen, die in der neuesten Version des weltweit beliebtesten CMS enthalten sein werden.

Auf einen Blick sind die wichtigsten Verbesserungen in WordPress 6.9 die folgenden:

  • Neue Kernblöcke (Accordion, Math und mehr) für mehr Flexibilität bei der Erstellung von Inhalten.
  • Wichtige Verbesserungen im Editor, die das Erstellen von Inhalten noch flüssiger und intuitiver machen.
  • Neue Entwickler-APIs wie die Abilities-API, Aktualisierungen der Interactivity-API und der Block Bindings-API sowie andere zusätzliche Upgrades, die für die Version 6.9 geplant sind.
  • Verbesserungen der Workflows und der Zusammenarbeit mit Notizen, die Option der Blocksichtbarkeit und die Erweiterung der Befehlspalette.

Diese Updates sorgen für ein besseres Erlebnis für alle: WordPress-Nutzerinnen und -Nutzer profitieren von leistungsfähigeren Werkzeugen für die Bearbeitung und Zusammenarbeit, während Entwicklerinnen und Entwickler dank der erweiterten APIs von fortschrittlicheren Integrationsmöglichkeiten profitieren.

Es gibt viel zu berichten, also lass uns die neuen Funktionen von WordPress 6.9 erkunden, die uns am meisten begeistert haben:

Neue Kernblöcke

Nach diesem GitHub-Problem führt WordPress 6.9 sechs neue Blöcke ein, die die kreativen Möglichkeiten des Blockeditors erweitern und die Installation zusätzlicher Plugins überflüssig machen. Zu diesen neuen Blöcken gehören Accordion, Term Query, Time to Read, Math, Comment Count und Comment Link.

Jahrelang wurde darüber debattiert, ob neue Blöcke in den Kern von WordPress integriert werden sollten oder ob sie in den Bereich der Plug-ins gehören. WordPress 6.9 geht einen praktischen Weg nach vorne. Mit den Worten von Mathias Ventura,

Ich denke, wenn diese Blöcke nicht in der Core-Bibliothek enthalten sind, schränkt das die Ausdruckskraft ein, auf die sich Theme-Ersteller (und Nutzer) verlassen können, um großartige Designs zu erstellen, und es kann das Gesamterlebnis beeinträchtigen, indem es die Leute dazu zwingt, stattdessen auf besser ausgestattete Block-Bibliotheken zurückzugreifen oder ganz darauf zu verzichten, wenn sie planen, etwas auf breiter Basis zu veröffentlichen.

Schauen wir uns jeden der neuen Blöcke, die mit WordPress 6.9 in den Kern integriert wurden, genauer an.

Accordion

Der lang erwartete Accordion-Block kommt endlich in den Core. Es handelt sich dabei nicht um einen einzelnen Block, sondern um eine verschachtelte Blockstruktur, die du im Blockinspektor leicht erkunden kannst.

Die Accordion-Blockstruktur
Die Accordion-Blockstruktur im Beitragseditor

Jeder Accordion-Block besteht aus den folgenden inneren Blöcken:

  • Accordion: Der Container für verschachtelte Akkordeon-Elemente.
  • Accordion-Element: Es ist das direkt verschachtelte Element und besteht aus einer Überschrift und einem Panel.
  • Accordionüberschrift: Eine anklickbare Überschrift, die ein Panel öffnet und schließt.
  • Accordion-Panel: Dieses Panel enthält den Inhalt des Accordion Elements und kann jede Art von Block enthalten.
Ein Accordion-Block im Code-Editor.
Ein Accordion-Block im Code-Editor

Der Block hat einen minimalistischen Stil, aber Justin Tadlocks exzellenter Leitfaden „Styling von Accordion in WordPress 6.9“ liefert das nötige Wissen , um das Aussehen deines Accordion anzupassen.

In den PRs #64119, #71222 und #71388 findest du alle Details zum neuen Accordion-Block.

Begriffsabfrage

Mit WordPress 6.9 wird ein neuer Begriffsabfrageblock eingeführt. Ähnlich wie der Abfrage-Block zeigt er Begriffe anstelle von Beiträgen an. Dieser neue Block ist eigentlich eine Begriffsvorlage, die einen Zeilenblock mit einem Begriffsnamen und einer Begriffsanzahl enthält.

Struktur des Terms Query Blocks
Struktur des Terms Query Blocks

Der Begriffsabfrageblock verfügt über mehrere Konfigurationsoptionen. Du kannst die Taxonomie festlegen, die Listenelemente sortieren, die ausgewählten Elemente angeben und wählen, ob leere oder verschachtelte Begriffe angezeigt oder ausgeblendet werden sollen. Du kannst auch die Anzahl der anzuzeigenden Begriffe festlegen.

Einstellungen des Terms Query Blocks
Einstellungen des Terms Query Blocks

Die Begriffsvorlage hat zwei Anzeigemodi: Liste und Raster. In der Rasteransicht kannst du die Position der Rasterelemente und die Anzahl der Spalten anpassen.

Terms Query in der Rasteransicht
Der Terms Query Block hat zwei Modi: Liste und Raster

Du kannst auch die Tags der Blockelemente ändern. Du könntest z. B. ein h2 Element für den Term Name Block verwenden. Du kannst auch Blöcke zwischen die Elemente des Begriffsabfrageblocks einfügen. Die folgende Abbildung zeigt einen Trennblock zwischen den Zeilen.

Anpassen des Terms Query Blocks
Anpassen des Terms Query Blocks

Mehr über den Terms Query Block erfährst du in PR #70720 und Issue #49094.

Lesezeit

Wie der Name schon sagt, zeigt der Block Lesezeit die Lesedauer für den aktuellen Beitrag oder die aktuelle Seite an. Der Block hat zwei Modi, Time to Read und Word Count, und eine Option, um die Lesezeit entweder als Bereich oder als bestimmten Wert anzuzeigen.

Der Block Lesezeit
Der Block Lesezeit
Der Time to Read-Block im Word Count-Modus
Der Time to Read-Block im Word Count-Modus

Math

Mit dem Math-Block kannst du mathematische Formeln in deinen Inhalt einfügen. Schreibe deine Formeln einfach in LaTeX-Syntax, und sie werden in die entsprechenden mathematischen Symbole umgewandelt.

Math-Block Vorschau
Mit dem Math-Block kannst du mathematische Formeln in Beiträge und Seiten einfügen

Es ist auch möglich, Inline-Formeln einzufügen.

Hinzufügen von Inline-Mathematik in WordPress 6.9
Hinzufügen von Inline-Mathematik in WordPress 6.9

Kommentare Link und Kommentare zählen

Die Blöcke Kommentar-Link und Kommentar-Zahl sind nicht mehr als experimentell gekennzeichnet. Beide Blöcke können jetzt im Site-Editor und im Beitragseditor verwendet werden.

Verbesserungen an bestehenden Blöcken

WordPress 6.9 führt kleinere und größere Aktualisierungen an einer Vielzahl von Blöcken ein, die deren Funktionalität und/oder Benutzerfreundlichkeit verbessern.

Problem mit dem Hintergrund-Padding für den Überschriftenblock behoben

Mit WordPress 6.9 wurde ein CSS-spezifisches Problem mit der Hintergrundauffüllung des Überschriftenblocks behoben. Vor dieser Version wirkten sich die auf den Überschriftenblock angewendeten Auffüllungsstile auch auf andere Blöcke aus, die Überschriften verwenden, wie z. B. der Accordion-Block.

Dank der Verwendung der Pseudoklasse :where() wurde der CSS-Selektor für Überschriften, die Hintergründe verwenden, spezifischer gestaltet, wie in den Entwicklungshinweisen beschrieben.

h1, h2, h3, h4, h5, h6 {
	&:where(.wp-block-heading).has-background {
		padding: ...;
	}
}

Wenn ein Thema die Klasse .has-background mit Überschriftenelementen verwendet, die keine Überschriftenblöcke sind, erhalten diese Elemente nicht mehr die standardmäßige Hintergrundauffüllung.

Auswählbares HTML-Element für Button- und Separator-Blöcke

Um die Barrierefreiheit zu verbessern, kannst du jetzt die HTML-Elemente der Button- und Separator-Blöcke auswählen.

Für den Button-Block kannst du in den erweiterten Einstellungen des Blocks zwischen <a> und <button> wählen.

Button-Block Erweiterte Einstellungen
Button-Block Erweiterte Einstellungen

Für den Separator-Block kannst du zwischen <hr> und <div> wählen.

Separator-Block Erweiterte Einstellungen
Separator-Block Erweiterte Einstellungen

tagName-Selektor für den Post Content-Block

Ab WordPress 6.9 kannst du den semantisch passenden Wrapper für den Post Content-Block auswählen. Du kannst zwischen <main>, <section> oder <article> wählen.

HTML-Element-Option für den Post-Content-Block
HTML-Element-Option für den Post-Content-Block

Benutzerdefinierte Linksymbole für Social Links

Ein neuer block_core_social_link_get_services Filter ermöglicht es Entwicklern jetzt, dem Social Links-Block mithilfe von Blockvariationen benutzerdefinierte Link-Symbole hinzuzufügen. Diese Ergänzung bietet mehr Optionen für die Anpassung des Social Links-Blocks und macht es überflüssig, dass der Kern eine lange Liste von Diensten verwalten muss.

Die technischen Details und den Code zum Registrieren einer Social Link Variation findest du im PR #70261. Das folgende Bild zeigt das Ergebnis im Beitragseditor.

Ein benutzerdefiniertes Link-Symbol in WordPress 6.9
Ein benutzerdefiniertes Link-Symbol in WordPress 6.9

Sortierung nach Menüreihenfolge im Abfrage-Schleifen-Block

Zusätzlich zu Beitragstitel und Datum kannst du jetzt auch Beitragstypen, die Seitenattribute unterstützen, im Query Loop-Block nach der Menüreihenfolge sortieren. Um diese neue Funktion auszuprobieren, erstelle mehrere Seiten und benutze die Schnellbearbeitung, um jede Seite zu bearbeiten.

Ändere die Menüreihenfolge im Bildschirm Seiten
Ändere die Menüreihenfolge im Bildschirm Seiten

Du kannst die Reihenfolge der Menüpunkte auch ändern, indem du jede Seite einzeln bearbeitest. Klicke in der Seiten-Seitenleiste auf der linken Seite auf die Schaltfläche Aktionen (die drei Punkte in der oberen rechten Ecke). Wähle dann Reihenfolge. Es erscheint ein Pop-up-Fenster mit einem numerischen Feld, in dem du die Reihenfolge des Menüs festlegen kannst.

Wähle Menüreihenfolge aus dem Menü Aktionen
Wähle Menüreihenfolge aus dem Menü Aktionen
Menüreihenfolge ändern
Menüreihenfolge ändern

Nachdem du die Seitenreihenfolge festgelegt hast, erstelle eine neue Seite und füge einen Query Loop Block hinzu. Wähle Seiten als Beitragstyp und sortiere sie nach Menüreihenfolge.

Der Wert menu_order ist für alle Beitragstypen in der Datenbank verfügbar; du musst jedoch die Unterstützung für die Funktion page-attributes registrieren, damit diese Einstellung für deine benutzerdefinierten Beitragstypen verfügbar ist.

Weitere Informationen zu dieser Funktion findest du in PR #68781.

Updates für den Navigationsblock

Der Navigationsblock hat mehrere Aktualisierungen erfahren. Hier ist eine kurze Liste der wichtigsten:

Die Link-Benutzeroberfläche des Navigationsblocks wurde um eine neue Schaltfläche Seite erstellen ergänzt. Diese Aktualisierung beinhaltet die Option, die Seite sofort zu veröffentlichen.

Seite erstellen in der Link-Benutzeroberfläche des Navigationslink-Blocks
Seite erstellen in der Link-Benutzeroberfläche des Navigationslink-Blocks
Option
Option „Sofort veröffentlichen“

Diese Funktion steht auch im Button-Block zur Verfügung, selbst wenn er im Navigationsmenü enthalten ist.

Befehl Seite erstellen in der Link Ui des Button-Blocks
Befehl Seite erstellen in der Link Ui des Button-Blocks

Dank der Block Bindings API wird das URL-Attribut des Navigationslink-Blocks dynamisch aktualisiert, wenn sich die ursprüngliche URL ändert, vorausgesetzt, der Link verweist auf eine Entität, wie z. B. eine Seite oder einen Beitrag.

Synchrone Link-URL
Synchrone Link-URL

Eine neue Umschaltoption in der Seitenleiste der Navigationslink-Blockeinstellungen ermöglicht es den Nutzern, Navigationslinks so zu konfigurieren, dass sie in einem neuen Tab geöffnet werden. Zuvor war die Option In neuem Tab öffnen nur im Kontextmenü des modalen Links verfügbar. Jetzt ist die Option leichter zu finden, da sie neben allen anderen Einstellungen in der Seitenleiste platziert ist.

Option „In neuem Tab öffnen“ in der Benutzeroberfläche für Links im Block „Navigationslink“
Option „In neuem Tab öffnen“ in der Link-Benutzeroberfläche des Navigationslink-Blocks

Du kannst jetzt einen transparenten Hintergrund für den Navigationsmenü-Block in der Editoroberfläche einstellen. Vor WordPress 6.9 musstest du benutzerdefinierten CSS-Code verwenden, um diesen Effekt zu erzielen.

Variationen der Blöcke „Dehnbare Überschrift“ und „Dehnbarer Absatz“

Die Blöcke „Dehnbare Überschrift“ und „Dehnbarer Absatz“ sind zwei neue Varianten, die den Text automatisch so dehnen, dass er in die gesamte Breite des Containers passt.

Du kannst die beiden Varianten auf zwei verschiedene Arten einfügen: direkt aus dem Blockeinfüger oder aus dem Dropdown-Menü der Überschriften- und Absatzblock-Symbolleiste.

Blockvariationen Dehnbare Überschrift und Dehnbarer Absatz
Blockvariationen Dehnbare Überschrift und Dehnbarer Absatz
In dehnbaren Absatz umwandeln
In dehnbaren Absatz umwandeln

Posterbild-Unterstützung für den Cover-Block

Dank der neuen Komponente poster-image unterstützt der Cover-Block jetzt auch Poster-Bilder. Das ist besonders nützlich für große Videos und für Nutzer mit langsamen Verbindungen und verbessert das Nutzererlebnis.

Nachdem wir nun die wichtigsten Neuerungen und Verbesserungen an den Kernblöcken kennengelernt haben, wollen wir uns ansehen, wie WordPress 6.9 die Zusammenarbeit im Team bei der Erstellung von Inhalten erleichtert, die auf die einzelnen Verantwortlichkeiten zugeschnitten sind. Mit dieser Version werden zwei leistungsstarke Funktionen eingeführt, die die Zusammenarbeit und die Arbeitsabläufe innerhalb des Editors erheblich verbessern werden: Notizen und Sichtbarkeit.

Kommentarblöcke mit Notizen in WordPress 6.9

Du kannst jetzt Notizen zu Blöcken im Beitragseditor hinzufügen. Diese Funktion ermöglicht die asynchrone Zusammenarbeit zwischen Teammitgliedern, sodass du Aktivitäten nachverfolgen und redaktionelle Arbeitsabläufe optimieren kannst.

Da es sich um eine Funktion handelt, die speziell für den Post-Editor gilt, müssen die Nutzer/innen die edit_posts Fähigkeit für diesen Post haben, um Notizen hinzuzufügen. Das bedeutet, dass:

  • Eingeloggte Nutzer/innen mit der Rolle Admin oder Editor können alle Notizen zu allen Beiträgen sehen.
  • Autoren und Mitwirkende können die von ihnen erstellten Notizen einsehen und bearbeiten.
  • Abonnenten können keine Notizen einsehen.

Um eine neue Notiz hinzuzufügen, klicke auf die Schaltfläche Notiz hinzufügen in der Blocksymbolleiste.

Im Menü „Optionen“ der Block-Symbolleiste gibt's jetzt einen neuen Punkt „Notiz hinzufügen“.
Im Menü Optionen der Block-Symbolleiste wird ein neuer Punkt Notiz hinzufügen angezeigt

Dadurch werden eine neue Seitenleiste für Notizen und ein Notizfeld zum Hinzufügen deiner Notiz angezeigt.

Hinzufügen einer Notiz zu einem Block in WordPress 6.9
Hinzufügen einer Notiz zu einem Block in WordPress 6.9

Du kannst die Notizen-Seitenleiste ein- und ausschalten, indem du auf die Schaltfläche Alle Notizen klickst, die erscheint, nachdem du deine erste Notiz hinzugefügt hast.

Alle Notizen-Kontrolle in der Symbolleiste der Editoreinstellungen
Alle Notizen-Kontrolle in der Symbolleiste der Editoreinstellungen

Notizen können aufgelöst, geändert oder gelöscht werden.

Notiz bearbeiten in WordPress 6.9
Notiz bearbeiten in WordPress 6.9

Notizen sind standardmäßig für Beiträge und Seiten aktiviert, aber du kannst sie dank der neuen Unterstützung von notes auch für deine benutzerdefinierten Beitragstypen aktivieren. Hier ist ein einfaches Beispiel, wie du die Unterstützung für Notizen für einen benutzerdefinierten Beitragstyp hinzufügen kannst:

register_post_type( 'book', array(
	'label' => 'Books',
	'public' => true,
	'show_in_rest' => true,
	'supports' => array(
		'title',
		'editor' => array( 'notes' => true ),
		'author',
		'excerpt',
	),
) );

Das Hinzufügen der Notizunterstützung bei der Registrierung eines benutzerdefinierten Beitragstyps ist ziemlich einfach. Das Hinzufügen von Notizen zu einem bestehenden Beitragstyp ist jedoch etwas komplizierter. Glücklicherweise arbeiten die Kernentwickler bereits daran, den Prozess zu vereinfachen, und wir können mit Updates für diese Funktion in zukünftigen WordPress-Versionen rechnen.

Technisch gesehen sind Notizen Kommentare und werden in der Tabelle wp_comments gespeichert, wobei das Feld comment_type auf note gesetzt ist. Um von einem Plugin aus programmatisch auf Notizen zuzugreifen, verwenden Sie die Funktion get_comments() wie folgt:

$args = array(
	'post_id' => $post_id,
	'type'    => 'note',
);
$notes = get_comments( $args );

Wenn du versuchst, Notizen von einem Plugin abzurufen, musst du den Typ note angeben, da Kommentare vom Typ Notiz standardmäßig von den Abfrageergebnissen ausgeschlossen werden.

Wenn ein Nutzer eine Notiz zu einem Block hinzufügt, erhält der Autor des Beitrags eine Benachrichtigung per E-Mail. Diese E-Mails sind standardmäßig aktiviert, können aber im WordPress-Dashboard deaktiviert werden, indem du zu Einstellungen > Diskussion > E-Mail an mich, wann immer, navigierst und die neue Option Jeder, der eine Notiz einstellt, abwählst.

Einstellungen für E-Mail-Benachrichtigungen in WordPress 6.9
Einstellungen für E-Mail-Benachrichtigungen in WordPress 6.9

Entwickler können diese Benachrichtigungen programmatisch steuern, indem sie den Filter notify_post_author verwenden.

Bitte beachte, dass dies die erste Version der Benachrichtigungsfunktion ist. Das Entwicklungsteam arbeitet bereits an der nächsten Iteration für WordPress 7.0.

Außerdem sind Notizen in WordPress 6.9 nur auf Blockebene verfügbar. Inline-Notizen sollten in zukünftigen Versionen implementiert werden.

In den Entwicklerhinweisen und der Iteration der Blockkommentierung für WordPress 6.9 findest du eine ausführlichere Analyse der neuen Notizfunktionen mit mehreren Codebeispielen.

Kontrolle der Blocksichtbarkeit

WordPress 6.9 führt eine neue Block-API und eine neue Schnittstelle zur Steuerung der Blocksichtbarkeit auf dem Frontend und im Editor ein.

Diese Funktion ist nützlich, um Blöcke auszublenden, die noch nicht angezeigt werden sollen, und sie ergänzt die neue Notizfunktion perfekt. Jetzt können Teams bei der Erstellung von Seiten zusammenarbeiten und Abschnitte erst dann fertigstellen, wenn sie vollständig und genehmigt sind.

Um die neue Funktion auszuprobieren, erstelle einen neuen Beitrag oder eine Seite und füge einen oder mehrere Blöcke oder Muster hinzu. Blende dann den Block oder das Muster im Dropdown-Menü „Blockeinstellungen“ oder in der Listenansicht aus und überprüfe die Wirkung sowohl im Editor als auch im Frontend.

Blöcke in WordPress 6.9 ausblenden
Blöcke in WordPress 6.9 ausblenden
Die neue Steuerung der Blocksichtbarkeit
Die neue Steuerung der Blocksichtbarkeit

Die Befehlspalette wurde auf das Admin-Dashboard erweitert

Die Befehlspalette ist jetzt sowohl im Website-Editor als auch im WordPress-Dashboard (Strg+K oder Befehl+K) verfügbar, um die Navigation einfacher und schneller zu machen. Tippe in die Palette, um zu suchen, im Dashboard zu navigieren oder direkt Aktionen auszuführen. Wenn du zum Beispiel „Hinzufügen“ eintippst, wird ein Menü mit Aktionen wie Beitrag hinzufügen, Mediendatei hinzufügen, Benutzer hinzufügen und mehr angezeigt.

Die Befehlspalette auf dem Beitragsbildschirm
Die Befehlspalette auf dem Beitragsbildschirm

Es wurden mehrere Vorschläge zur Erweiterung und Verbesserung der Befehlspalette gemacht, und in Zukunft werden neue Befehle hinzugefügt. Verfolge die Diskussion im Thema Übersicht der Befehlspalette, um auf dem Laufenden zu bleiben.

Was ist neu für Entwickler?

Kommen wir nun zu dem Teil von WordPress 6.9, der für Entwickler am spannendsten sein wird. Eine brandneue Reihe von APIs ermöglicht es Entwicklern, ihre Plugins für KI-Systeme zugänglich zu machen. Aber das ist noch nicht alles! WordPress 6.9 bringt auch viele Verbesserungen für bestehende APIs, darunter die Interaktivitäts-API, Block Bindings und die DataViews-API.

Schauen wir uns die neuen Funktionen im Detail an.

Abilities API

WordPress 6.9 führt die Abilities API ein, eine neue funktionale Schnittstelle, die eine standardisierte Registrierung bietet und es Plugins, Themes und dem WordPress-Kern ermöglicht, ihre Fähigkeiten sowohl in menschen- als auch in maschinenlesbaren Formaten darzustellen.

In diesem zentralen Register können alle Funktionen formal registriert werden, um sie zu entdecken, zu validieren und konsistent über PHP, REST-APIs und KI-Lösungen auszuführen.

Die neue Abilities API kommt WordPress-Nutzern direkt zugute, indem sie es externen Diensten – wie KI-Assistenten, externen Apps und UI-Funktionen wie der Befehlspalette – ermöglicht, WordPress-Aktionen (z. B. Veröffentlichen oder Bearbeiten) auf standardisierte Weise zu verstehen und auszuführen.

Welche Vorteile ergeben sich daraus für Entwickler?

Der erste Vorteil ist Klarheit: Eine Fähigkeit ist eine registrierte Funktion mit einer Beschreibung, einer Eingabe und einer Ausgabe.

Der zweite wesentliche Aspekt der neuen API ist die Standardisierung. Die API sorgt dafür, dass Befehle unabhängig von der Umgebung einheitlich formuliert und verstanden werden. Das kann das WordPress-Dashboard sein, der Block-Editor, eine externe Anwendung, die über die REST-API zugreift, oder ein KI-Assistent.

Ein weiterer wichtiger Aspekt ist die Workflow-Automatisierung. Mit der Abilities API kannst du Abfolgen von Vorgängen erstellen, die es Entwicklern ermöglichen, komplexe automatisierte Workflows zu erstellen.

Entwickler können die Abilities API für verschiedene Zwecke nutzen, z. B. um die Funktionen der Befehlspalette zu erweitern und automatisierte Workflows zu erstellen.

Einmal registriert, werden Fähigkeiten für KI-Systeme wie ChatGPT und Gemini zugänglich:

Die API verwaltet die Registrierung und die Berechtigungen, während die Protokolladapter diese in Formate übersetzen, die externe KI-Systeme verstehen. Auf diese Weise wird eine robuste Verbindung zwischen WordPress-Funktionen und KI-Assistenten hergestellt, wobei die Erstanbieter-API als maßgebliche Quelle für die offengelegte Logik dient.

Eine Fähigkeit ist „eine in sich geschlossene Funktionseinheit mit definierten Eingaben, Ausgaben, Berechtigungen und Ausführungslogik“

Die API bietet eine Reihe von Funktionen, mit denen du alle Aspekte von Fähigkeiten und Fähigkeitskategorien verwalten kannst. Außerdem bietet sie neue REST-API-Endpunkte, Aktionen und Filter-Hooks.

Um eine neue Fähigkeit zu registrieren, bietet die API die neue Aktion wp_abilities_api_init und die Funktion wp_register_ability. Hier ist die Funktionssignatur:

wp_register_ability( string $name, array $args ): ?WP_Ability

wp_register_ability nimmt die folgenden Parameter an:

  • $name (string) ist ein eindeutiger Bezeichner für die Fähigkeit
  • $args (array) ist ein Array von Argumenten

Die Funktion gibt eine Instanz von WP_Ability zurück, wenn die Registrierung erfolgreich war, und null im Falle eines Fehlers.

Hier ist ein Beispiel aus der Dokumentation, wie man eine Fähigkeit registriert:

add_action( 'wp_abilities_api_init', 'my_plugin_register_site_info_ability' );
function my_plugin_register_site_info_ability() {
	wp_register_ability( 'my-plugin/get-site-info', array(
		'label' => __( 'Get Site Information', 'my-plugin' ),
		'description' => __( 'Retrieves basic information about the WordPress site including name, description, and URL.', 'my-plugin' ),
		'category' => 'data-retrieval',
		'output_schema' => array(
			'type' => 'object',
			'properties' => array(
				'name' => array(
					'type' => 'string',
					'description' => 'Site name'
				),
				'description' => array(
					'type' => 'string',
					'description' => 'Site tagline'
				),
				'url' => array(
					'type' => 'string',
					'format' => 'uri',
					'description' => 'Site URL'
				)
			)
		),
		'execute_callback' => function() {
			return array(
				'name' => get_bloginfo( 'name' ),
				'description' => get_bloginfo( 'description' ),
				'url' => home_url()
			);
		},
		'permission_callback' => '__return_true',
		'meta' => array(
			'annotations' => array(
				'readonly' => true,
				'destructive' => false
			),
		),
	));
}

Das macht dieser Code:

  • wp_abilities_api_init ist die Aktion, die bei der Registrierung einer neuen Fähigkeit ausgeführt wird, um sicherzustellen, dass die API für Fähigkeiten vollständig initialisiert ist, bevor die neue Fähigkeit registriert wird.
  • wp_register_ability ist die Funktion, mit der eine neue Fähigkeit registriert wird. Das erste Argument ist der eindeutige Bezeichner der Fähigkeit (my-plugin/get-site-info); das zweite Argument ist ein Array mit Einstellungen.
  • label ist eine für Menschen lesbare Bezeichnung, die in der Benutzeroberfläche (z. B. in der Befehlspalette) verwendet wird.
  • description ist die Beschreibung der Fähigkeit
  • category ist die Kategorie der Fähigkeit
  • output_schema ist ein Array, das die Daten definiert, die von der Fähigkeit zurückgegeben werden.
  • execute_callback ist eine Callback-Funktion, die ausgeführt wird, wenn die Fähigkeit aufgerufen wird.
  • permission_callback ist eine Funktion, die ausgeführt wird, um zu überprüfen, ob der Benutzer oder Agent die Berechtigung hat, die Fähigkeit auszuführen.
  • meta ist ein Array mit optionalen Metadaten.

In den folgenden Ressourcen finden Entwickler weitere Details mit vielen Codebeispielen:

Verbesserungen der Block Bindings API

WordPress 6.9 führt mehrere Verbesserungen an der Block Bindings API ein.

Erstens wurde die Unterstützung für die Block Bindings API auf andere Blöcke erweitert.

  • Der Datenblock akzeptiert jetzt jedes Datum, unabhängig vom Veröffentlichungs- oder Aktualisierungsdatum des Beitrags. Dies wurde durch das Hinzufügen der neuen Datenquelle core/post-data möglich. Du kannst es selbst ausprobieren, indem du einen Datumsblock zu einem Beitrag hinzufügst und ihm ein eigenes Datum zuweist. Dann fügst du einen weiteren Datumsblock hinzu und wählst die Variante Post Date. Ändere dann das Veröffentlichungsdatum, speichere den Beitrag und überprüfe die Unterschiede. Technische Details findest du im PR #70585.
  • WordPress 6.9 bietet außerdem Unterstützung für das Bild-Attribut des Image-Blocks in Pattern Overrides.

Die Benutzeroberfläche des Editors wurde verbessert und zeigt nun verschiedene Quellen für Blockbindungen an. Nutzer können mit wenigen Klicks zwischen den Datenquellen wechseln und Attribute binden oder lösen (siehe Abbildung unten).

WordPress 6.9 führt auch einige interessante Änderungen für Entwickler ein.

Die API wurde um einen neuen block_bindings_supported_attributes_{$block_type} Filter erweitert, der auf der Serverseite verwendet werden kann. Mit diesem Filter kannst du festlegen, welche Blockattribute mit einer benutzerdefinierten Datenquelle verbunden werden können.

Auf der Client-Seite kannst du jetzt benutzerdefinierte Quellen mit der Methode getFieldsList in der Quellenregistrierungsfunktion registrieren.

In den Entwicklungshinweisen findest du einen wertvollen Codeblock, den du kopieren und in die Konsole deines Browsers einfügen kannst, um die verbesserte Block Bindings UI anzuzeigen.

Das folgende Bild zeigt den neuen Quellen-Selektor für einen Absatzblock.

Die Block Bindings UI in WordPress 6.9
Die Block Bindings UI in WordPress 6.9

Erweiterungen für DataViews und DataForm

Die DataViews und DataForm APIs bieten eine moderne, standardisierte Möglichkeit, strukturierte Daten wie Listen von Beiträgen, Seiten oder Medien anzuzeigen und zu verwalten.

Die beiden APIs dienen unterschiedlichen Zwecken.

  • Die DataViews-API ist für die Anzeige und Navigation von Daten gedacht. Mit ihr kannst du Ansichten erstellen, z. B. Tabellen, Raster und Listen. Außerdem kannst du mit ihr Daten suchen, filtern und sortieren.
  • Die DataForm-API ist dafür gedacht, die Elemente eines Datensatzes zu ändern.
Der Abschnitt „Seiten“ im Listenlayout im Site Editor
Ein Beispiel für DataViews: Anzeige von Seiten im Listenlayout im Site Editor

Mit WordPress 6.9 erhalten diese beiden APIs mehrere Verbesserungen. Im Folgenden findest du eine Liste der wichtigsten Neuerungen:

  • Die DataViews erhalten neue Felder, Steuerelemente und Operatoren. Zu den verschiedenen Ergänzungen gehören neue Definitionen für Medien-, boolesche, E-Mail- und Array-Felder, neue checkbox und toggleGroup Edit-Steuerelemente, neue Filteroperatoren und vieles mehr.
  • Das Validierungssystem wurde komplett überarbeitet. Alle Felder unterstützen jetzt „die required und elements Regel sowie die Definition einer benutzerdefinierten Validierung über die benutzerdefinierte Funktion.“
  • Zusätzlich zum Feldtyp datetime unterstützen die DataViews jetzt auch den Feldtyp date. Damit kannst du Elemente ausschließlich auf der Basis des Datums anzeigen lassen. Diese Ergänzung ermöglicht auch das Filtern nach Datum mit der neuen Komponente Calendar.
  • Die neue Version fügt auch die Komponenten DateCalendar und DateRangeCalendar hinzu.
  • Das Tabellenlayout wurde weiter verbessert. Es ist jetzt möglich, mehrere Einträge mit Strg/⌘ + Klick auszuwählen.
  • Mit der neuen Eigenschaft groupByField kannst du Daten auf der Grundlage von Feldwerten visuell gruppieren, was die Organisation der Daten erleichtert. Diese Funktion ist sowohl für Grid- als auch für Tabellen-Layouts verfügbar.
  • WordPress 6.9 führt auch Leistungsverbesserungen für DataViews ein. Vor Version 6.9 lud die in DataViews verwendete Komponente FeaturedImageView Bilder in voller Größe. Das bedeutete, dass Websites mit vielen großen Vorschaubildern mehrere Megabyte an Bildern laden mussten. Ab Version 6.9 verwendet das Grid-Layout jedoch responsive Bilder, was die Backend-Leistung für Websites, die eine große Anzahl von Bildern verwenden, deutlich verbessert.

Weitere bemerkenswerte Änderungen an DataViews sind:

  • Einführung von gesperrten Filtern, die es ermöglichen, die Auswirkungen von Filtern zu sehen, ohne sie zu verändern. Dies ist nützlich für vorkonfigurierte Ansichten.
  • Für das Feld date wurde eine neue Bearbeitungsfunktion eingeführt.
  • Der leere Zustand der DataViews kann jetzt angepasst werden, so dass du die Nachricht anpassen oder einen React-Knoten für weitere Anpassungen bereitstellen kannst.

Eine vollständige Liste der Ergänzungen und Änderungen an den DataViews und DataForm APIs findest du in den Entwicklungshinweisen und PRs #70567 und #70578.

Erweiterungen der Interaktivitäts-API

Wie der Name schon sagt, können Entwickler mit der Interaktivitäts-API interaktive Blöcke erstellen, die in Echtzeit auf Benutzerinteraktionen reagieren. Kurz gesagt handelt es sich um ein Werkzeug, mit dem du reichhaltige Nutzererlebnisse schaffen und Websites attraktiv, dynamisch und ansprechend gestalten kannst.

Die Interaktivitäts-API wurde erstmals in WordPress 6.5 eingeführt und erhält in dieser Version wichtige Updates. Im Folgenden findest du einige der interessantesten Neuerungen.

Hinzufügen von IDs zu Interaktivitäts-API-Direktiven

Du kannst jetzt IDs zu Interaktivitäts-API-Direktiven hinzufügen. Diese Funktion ist nützlich, weil du damit die Einschränkung umgehen kannst, dass du nicht mehrere Attribute mit demselben Namen in demselben HTML-Element verwenden kannst.

Um einer Direktive eine ID zuzuweisen, fügst du einen dreifachen Bindestrich (---) an, gefolgt von der ID, wie im folgenden Beispiel:

<div
	data-wp-watch---my-unique-id="callbacks.firstWatch"
	data-wp-watch---another-id="callbacks.secondWatch"
></div>

Laden von Skriptmodulen und Stylesheets

Diese Änderung ermöglicht eine umfassendere und flüssigere clientseitige Navigation. WordPress ersetzt jetzt Stylesheets und lädt Skriptmodule „nach“ der clientseitigen Navigation. Das hat erhebliche Auswirkungen.

  • Der neue Algorithmus verwendet Stylesheets wieder, die auf früheren Seiten verwendet wurden, lädt neue, die auf diesen Seiten nicht vorhanden waren, und deaktiviert nicht verwendete. Dadurch werden die Netzwerkanfragen minimiert.
  • Auch Skriptmodule werden dank der neuen importmap Definitionen effizienter verwaltet.
  • Schließlich lädt das Prefetching alle Stylesheets und Skriptmodule vor, die noch nicht vorgeladen wurden.

Router-Regionen innerhalb interaktiver Elemente

Eine weitere Neuerung ist die Unterstützung von Router-Regionen innerhalb von interaktiven Elementen. Bisher musste die Router-Region – der Bereich der Seite, der aktualisiert wird, wenn der Nutzer auf einen Link klickt – ein interaktives Root-Element sein. Das bedeutete, dass der Inhalt nicht aktualisiert wurde, wenn sich die Router-Region innerhalb eines anderen interaktiven Elements befand. Mit WordPress 6.9 ändert sich das und ermöglicht es Entwicklern, Router-Regionen innerhalb interaktiver Elemente zu platzieren.

Neue attachTo-Eigenschaft für Router-Regionen

Routerregionen akzeptieren jetzt eine neue attachTo Eigenschaft, die innerhalb der data-wp-router-region directive definiert werden kann. Dank dieser neuen Eigenschaft kann die Routerregion jetzt auch dann gerendert werden, wenn sie auf der Ausgangsseite nicht vorhanden ist. Der Wert von attachTo muss ein CSS-Selektor sein, der auf das übergeordnete Element verweist, in das die Router-Region eingefügt werden soll. Hier ist ein Beispiel aus den Entwicklungshinweisen:

<div
	data-wp-interactive="example"
	data-wp-router-region='{ "id": "example/region", "attachTo": "body" }'
>
	I'm in a new region!
</div>

Synchronisierung von getServerState und getServerContext

Die Funktionen getServerState() und getServerContext() wurden verbessert. Wenn diese Funktionen einen Wert verfolgen, der sich während der clientseitigen Navigation nicht ändert, werden die Werte jetzt zurückgesetzt. Außerdem werden nur die Eigenschaften der aktuellen Seite beibehalten, während die der vorherigen Seiten entfernt werden.

Einen ausführlicheren Überblick über die Verbesserungen der Interaktivitäts-API mit Codebeispielen findest du unter Verbesserungen der Client-Navigation der Interaktivitäts-API in WordPress 6.9 und Änderungen an der Interaktivitäts-API in WordPress 6.9.

Einen umfassenden Überblick über die Interaktivitäts-API findest du in unserem ausführlichen Leitfaden.

Zusätzliche Updates für Entwickler

WordPress 6.9 bringt eine Reihe von Updates für Entwickler/innen mit sich. Hier ist eine kurze Liste der Entwicklungshinweise:

Ein Blick in die Zukunft: von WordPress 6.9 zu 7.0

WordPress 6.9 führt bedeutende Verbesserungen im Block-Editor, in den APIs und in den kollaborativen Workflows ein, die sich in 7.0 weiter entwickeln werden. Da die Plattform immer dynamischer wird und immer stärker mit KI-gesteuerten Werkzeugen verbunden ist, wird ein leistungsfähiges Hosting immer wichtiger. Wenn du dich auf 6.9 vorbereitest oder die nächsten Schritte planst, solltest du dich über die Kinsta-Pläne informieren, damit du deine WordPress-Projekte mit Sicherheit betreiben kannst.

Carlo Daniele Kinsta

Carlo ist ein leidenschaftlicher Liebhaber von Webdesign und Frontend-Entwicklung. Er beschäftigt sich seit über 10 Jahren mit WordPress, auch in Zusammenarbeit mit italienischen und europäischen Universitäten und Bildungseinrichtungen. Er hat Dutzende von Artikeln und Leitfäden über WordPress geschrieben, die sowohl auf italienischen und internationalen Websites als auch in gedruckten Magazinen veröffentlicht wurden. Du kannst Carlo auf X und LinkedIn finden.