WordPress 5.6 „Simone“ ist da und wir freuen uns darauf, mit dir in die interessantesten Features und Ergänzungen einzutauchen, die mit dem neuesten WordPress Release 2020 in den Core integriert wurden.

Wie frühere Versionen enthält auch WordPress 5.6 mehrere Versionen des Block-Editors, die das Bearbeitungserlebnis für WordPress-Benutzer verbessern, die das Gutenberg-Plugin noch nicht installiert und auf ihren Webseiten aktualisiert haben.

Aber nicht alles dreht sich um den Blockeditor. Dem WordPress-Core wurden mehrere Funktionen hinzugefügt, wie z.B. ein neues Standard Theme Twenty Twenty One, Auto-Updates für Hauptversionen, bessere Unterstützung für PHP 8.0, Anwendungskennwörter für die REST-API-Authentifizierung.

Und es gibt noch viel mehr in WordPress 5.6. Wir werden Verbesserungen der Zugänglichkeit, Verbesserungen der Benutzeroberfläche, Tonnen von Fehlerbehebungen und eine riesige Liste von Änderungen für Entwickler sehen.

Wenn du mehr über den Entwicklungszyklus von WordPress 5.6 lesen möchtest, klicke auf die untenstehenden Links:

  • 20. Oktober 2020: Beta 1
  • 27. Oktober 2020: Beta 2
  • 2. November 2020: Beta 3
  • 12. November 2020: Beta 4
  • 17. November 2020: RK 1
  • 1. Dezember 2020: RK 2
  • 7. Dezember 2020: Probelauf für die Veröffentlichung von WordPress 5.6
  • 8. Dezember 2020: Release von WordPress 5.6 „Simone“

Bereit zu starten? Lasst uns loslegen:

Was ist neu beim Blockeditor?

Mit WordPress 5.6 wurden mehrere Versionen des Gutenberg-Plugins im Core zusammengeführt, so dass WordPress-Benutzer und-Autoren einige Verbesserungen im Editor bemerken sollten. Wir werden verbesserte Blockmuster, Wortzählungen in der Infotafel, eine verbesserte Tastaturnavigation, eine verbesserte Drag & Drop-Oberfläche und vieles mehr sehen.

Eine umfassendere Liste aller Verbesserungen und Änderungen, die dem Blockeditor hinzugefügt wurden, findest du in den Ankündigungsbeiträgen zur Veröffentlichung: 8.6, 8.7, 8.8, 8.9, 9.0, 9.1 und 9.2. Fehlerbehebungen und Leistungsverbesserungen, die in Gutenberg 9.3 und 9.4 implementiert wurden, sind auch in WordPress 5.6 enthalten.

Lasst uns in die interessanteren Änderungen eintauchen, die wir im Blockeditor sehen werden.

  1. Blöcke, Muster und UI-Verbesserungen
  2. Block API V2
  3. Zusätzliche Funktionen und Verbesserungen für Blockentwickler

Blöcke, Muster und UI-Verbesserungen

Neue Blockfunktionen, Verbesserungen und Fehlerbehebungen werden das gesamte Bearbeitungserlebnis verbessern. Auch an der Zugänglichkeit wurde große Arbeit geleistet. Nachfolgend findest du unsere handverlesene Auswahl der interessantesten Funktionen, die du im Blockeditor sehen wirst, wenn du deine Webseite auf WordPress 5.6 aktualisierst.

Positionssteuerungen für Videos im Cover-Block

Die seit Gutenberg 8.6 zu den Cover-Blöcken hinzugefügten Positionssteuerungen für Videos ermöglichen es den Benutzern, den Fokuspunkt zu verschieben und eine benutzerdefinierte Position für Videos festzulegen. Diese Funktionalität war zuvor nur für Bildhintergründe verfügbar.

Video-Positionssteuerungen
Video-Positionssteuerungen

Die Positionswerte werden durch Klicken auf eine beliebige Stelle des Brennpunkt-Pickers und/oder mit den Pfeiltasten der Tastatur eingestellt. Du kannst Werte um 10 springen, indem du die Umschalttaste gedrückt hältst (siehe auch #22531).

Blockmuster-Aktualisierungen

WordPress 5.6 enthält auch einige Blockmuster-Verbesserungen, die mit Gutenberg 8.6 hinzugefügt wurden.

Das Layout, der Text und die Farbe der großen Kopfzeile und des Absatzes wurden aktualisiert (#23858)

Die Überschrift in Zwei Textspalten wurde aus dem Textblock herausgenommen und über den Spalten platziert (#23853)

Das Zitatmuster enthält jetzt oben ein Bild und unten ein Trennzeichen.

Das neue Zitatmuster enthält ein Bild und ein Trennzeichen
Das neue Zitatmuster enthält ein Bild und ein Trennzeichen

Ein neues Überschriften- und Absatzmuster wurde mit Gutenberg 8.7 (#24143) hinzugefügt.

Überschrift und Absatzmuster in WordPress 5.6
Überschrift und Absatzmuster in WordPress 5.6

Eine gute Verbesserung der Benutzerfreundlichkeit für den Block-Inserter ist die Dropdown-Liste „Blockmuster-Kategorie, mit der du Muster nach Kategorien filtern kannst. Dies ist äußerst nützlich, wenn du tonnenweise Muster zur Auswahl hast (#24954).

Die Dropdown-Liste der Blockmusterkategorie
Die Dropdown-Liste der Blockmusterkategorie

Unterstützung von Video-Untertiteln

Videoblöcke unterstützen jetzt Video-Untertitel.

Hinzufügen von Video-Untertiteln im Videoblock
Hinzufügen von Video-Untertiteln im Videoblock

Redakteure und Content-Ersteller sollten Video-Untertitel im WebVTT-Format (Web Video Text Tracks Format) zur Verfügung stellen, das „ein Format zur Anzeige von zeitgesteuerten Textspuren (wie Untertitel oder Bildunterschriften) unter Verwendung des Elements <track>“ ist (#25861).

Spurenelemente, die mit Untertiteln in verschiedenen Sprachen verknüpft sind
Spurenelemente, die mit Untertiteln in verschiedenen Sprachen verknüpft sind

Sobald du deine .vtt-Dateien geladen hast, können Webseiten-Betrachter Untertitel in ihrer bevorzugten Sprache aktivieren.

Benutzereinstellungen für Video-Untertitel
Benutzereinstellungen für Video-Untertitel

Mehrere Blöcke in einen Spaltenblock umwandeln

Eine interessante Verbesserung der Benutzerfreundlichkeit ist die Möglichkeit, mehrere ausgewählte Blöcke in einen Spaltenblock zu konvertieren.

Mehrere Blöcke auswählen
Mehrere Blöcke auswählen

Du musst nur die Blöcke auswählen, die du in Spalten anzeigen möchtest, und dann auf die Schaltfläche oben rechts in der Blocksymbolleiste klicken.

Jeder ausgewählte Block wird in eine Spalte eines Spaltenblocks konvertiert.

In Baumspalten umgewandelte Baumblöcke
In Baumspalten umgewandelte Baumblöcke

Hintergrundmuster im Umschlagblock

Deckblöcke können jetzt Hintergrundmuster anzeigen.

Ein Deckblock mit einem Hintergrundmuster
Ein Deckblock mit einem Hintergrundmuster

Um ein Hintergrundmuster hinzuzufügen, lade ein Musterbild hoch und schalte dann die Option Wiederholter Hintergrund ein (hier findest du alles, was du über die Medienbibliothek in WordPress wissen musst).

Wenn du damit fertig bist, stelle den Fokuspunkt-Picker nach deinen Bedürfnissen ein und probiere verschiedene Kombinationen mit festen Hintergründen aus.

Bildgrößenkontrolle zum Medien- und Textblock hinzugefügt

Mit Gutenberg 9.1 wurde eine neue Bildgrößenkontrolle für Bilder in Media & Text Block hinzugefügt.

Benutzer können nun aus allen verfügbaren Bildgrößen wählen (#24795).

Bildgrößenkontrolle in Medien- & Textblock
Bildgrößenkontrolle in Medien- & Textblock

Block API V2

Eine neue Block-API-Version ermöglicht es Blöcken, ihr Wrapper-Element zu rendern. Das Ziel der neuen API-Version ist es, das DOM des Editors zu erleichtern und es an den Inhalt der Titelseite anzupassen. Laut Ella van Durpe:

Der größte Vorteil davon ist, dass Themes und Plugins den Blockinhalt leichter stylen können, wenn das Markup im Editor gleich ist.

Die neue Version erfordert die Deklaration der apiVersion-Eigenschaft bei der Blocktyp-Registrierung:

registerBlockType( name, { apiVersion: 2 } );

Die neue API erfordert auch den useBlockPropsHook in der Blockbearbeitungsfunktion. Dieser Hook markiert das Wrapper-Element eines Blocks als Blockelement.

Jede an diesen Hook übergebene Eigenschaft wird zusammengeführt und an das Wrapper-Element zurückgegeben. Das folgende Beispiel aus den dev-Notes zeigt einen einfachen Anwendungsfall:

import { useBlockProps } from '@wordpress/block-editor';
 
function Edit( { attributes } ) {
	const blockProps = useBlockProps( {
		className: someClassName,
		style: { color: 'blue' },
	} );
	return <p { ...blockProps }>{ attributes.content }</p>;
}

Weitere Beispiele findest du unter Block API Version 2.

Zusätzliche Funktionen und Verbesserungen für Blockentwickler

Neben der Block API Version 2 findest du hier eine Liste von Ergänzungen, die Entwickler durcharbeiten müssen.

Block unterstützt API

Block Supports API ermöglicht Blockentwicklern, ihren Blöcken Funktionen hinzuzufügen. Farben, Hintergründe, Schriftgrößen sind nur einige der vielen Features, die über die Block Supports API zu Blöcken hinzugefügt werden können.

WordPress 5.6 führt auch mehrere neue Block-Unterstützungen ein, „um die Konsistenz zu erhöhen und die Einführung dieser Optionen in Blöcke zu erleichtern“.

Entwickler können die neuen Block-Unterstützungen verwenden, indem sie die entsprechenden Schlüssel in die Support-Eigenschaft der Datei block.json oder direkt in die Funktion registerBlockType einfügen.

Das folgende Beispiel aus Block Supports devnote zeigt, wie es funktioniert:

supports: {
	color: {
		background: true, // Enable background color UI control.
		gradient: true, // Enable gradient color UI control.
		text: true // Enable text color UI control.
	},
	fontSize: true, // Enable font size UI control.
	lineHeight: true // Enable line height UI control.
}

Der Stilwert wird automatisch an das Wrapper-Element angehängt, entweder über die has-<value>-<preset-category> ( für voreingestellte Werte) oder mit einem style Element(für benutzerdefinierte Werte).

Aus diesem Grund sind die Block-Unterstützungen für die Verwendung mit der neuen Block-API V2 vorgesehen.

Block Supports können auch mit dynamischenBlöcken verwendet werden.

createBlocksFromInnerBlocksTemplate-API

Entwickler können die InnerBlocks-Komponente verwenden, um benutzerdefinierte Blöcke zu erstellen, die andere Blöcke enthalten. Beispiele hierfür sind der Block Columns und der Block Social Links.

Die neue createBlocksFromInnerBlocksTemplate Block API ermöglicht es dir, Blöcke aus der InnerBlocks-Vorlage zu erstellen.

Siehe devnotes für eine detailliertere Ansicht und ein Beispiel für Code.

Symbolleisten-Komponenten

Einige Änderungen betreffen auch die Komponentender Symbolleiste:

1. ToolbarGroup-Komponente

Vor WordPress 5.6 erlaubte die Toolbar-Komponente Entwicklern, verwandte Optionen in einem gemeinsamen Container zu gruppieren. Jetzt sollte stattdessen eine neue ToolbarGroup-Komponente verwendet werden.

<BlockControls>
	<ToolbarGroup>
		<ToolbarButton />
	</ToolbarGroup>
</BlockControls>
2. ToolbarButton- und ToolbarItem-Komponenten

Die direkte Verwendung tabellierbarer Elemente als Symbolleistenelemente (d.h. <button> ) ist veraltet. Um die Zugänglichkeit zu verbessern, können Symbolleistenelemente mit Toolbar Button für Schaltflächen und Toolbar Item für andere Steuerelemente hinzugefügt werden. Das folgende Beispiel zeigt eine Schaltfläche und ein Dropdown-Menü:

<BlockControls>
	<ToolbarItem as="button" />
	<ToolbarButton />
	<ToolbarItem>
		{ ( itemProps ) => ( <DropdownMenu toggleProps={ itemProps } /> ) }
	</ToolbarItem>
</BlockControls>

Deaktivieren von Kernblockmustern

Kernmuster können jetzt mit dem Flag zur Unterstützung core-block-patterns deaktiviert werden (#24042)

Deaktivieren des Inline-Bildeditors

Gutenberg 8.4 fügte eine Inline-Bildbearbeitungsfunktion hinzu, mit der Benutzer Bilder direkt aus dem Blockeditor heraus bearbeiten können.

Inline-Bildbearbeitung
Inline-Bildbearbeitung

Entwickler können den Bildeditor jetzt mithilfe des Filters block_editor_settings (#23966) deaktivieren:

add_filter( 'block_editor_settings', function( $settings ) {
	$settings['imageEditing'] = false;
	return $settings;
} );
Inline-Bildbearbeitung deaktiviert
Inline-Bildbearbeitung deaktiviert

Wiederverwendbare Blöcke in ein separates Paket verschoben

Wiederverwendbare Blöcke, die zuvor Teil des Pakets @wordpress/editor waren, wurden in das Paket @wordpress/reusable-blocks verschoben, um sie in anderen Editoren verfügbar zu machen.

Ein neues Standardtheme: Twenty Twenty-One

WordPress 5.6 enthält ein brandneues Standardtheme. Twenty Twenty One ist ein hochgradig zugängliches, minimalistisches WordPress-Theme mit einem einspaltigen Layout und einer Fußzeilen-Seitenleiste.

Das neue Theme verwendet einen Systemschriftstapel und eine minimale Farbpalette, die auf pastellfarbenen Hintergrundfarben basiert.

Twenty Twenty-One Themevorschauen
Twenty Twenty-One Themevorschauen (Bildquelle: Make WordPress Core)

Du kannst viel mehr über Twenty Twenty-One in unserem ausführlichen Blogbeitrag lesen: Twenty Twenty-One: Ein tiefes Eintauchen in das neue WordPress-Standardtheme.

Auto-Updates für Hauptversionen

Automatische Aktualisierungen sind eine Kernfunktion, die mit WordPress 3.7 eingeführt wurde, um die Sicherheit der Seite zu verbessern und es den Seiten-Administratoren zu erleichtern, ihre WordPress-Webseiten auf dem neuesten Stand zu halten.

Während in früheren Versionen automatische kleinere Kern-Updates implementiert wurden, können Seiten-Administratoren mit WordPress 5.6 nun auch für Hauptversionen manuell automatische Updates aktivieren (mehr dazu in einer Sekunde).

Leider kann diese wichtige Wartungsaufgabe für technisch nicht versierte Benutzer immer noch etwas verwirrend sein. Du kannst in unserem Blogbeitrag Eine ausführliche Anleitung über WordPress Updates mehr darüber lesen, wie automatische Updates funktionieren.

Daher führt WordPress 5.6 eine neue Schnittstelle ein, die es Seiten-Administratoren ermöglicht, automatische Aktualisierungen für wichtige Kernversionen zu aktivieren.

Der Umfang dieser Funktion hat sich während des Betazyklus von WordPress 5.6 geändert, und der ursprünglicheEntwicklerhinweis wurde ersetzt. Mit den Worten von JbAudras,

Der anfängliche Umfang der automatischen Core-Updates hat sich verschoben:

  • Stelle einige Aktualisierungen des Designs der Benutzeroberfläche zur Verfügung.
  • Bei bestehenden Installationen wird das Verhalten dasselbe bleiben wie heute: Standardmäßig wird für kleinere Updates optiert, aber ein Benutzer muss sich für größere Updates entscheiden (Konstanten und Filter, die bereits von Hosts oder Agenturen verwendet werden, haben weiterhin Vorrang).
  • Bei Neuinstallationen ändert sich das Standardverhalten: standardmäßig für kleinere Aktualisierungen und standardmäßig für größere Aktualisierungen freigeschaltet.

Ab WordPress 5.6 kannst du automatische Aktualisierungen für wichtige Kernversionen im Bildschirm Aktualisierungen aktivieren, wo eine neue Benutzeroberfläche ein Kontrollkästchen bietet, mit dem du automatische Aktualisierungen für alle neuen Versionen von WordPress aktivieren kannst.

Aktiviere automatische Updates für alle neuen Versionen von WordPress
Aktiviere automatische Updates für alle neuen Versionen von WordPress

Wenn du die automatischen Core-Aktualisierungen für Hauptversionen aktiviert hast, kannst du diese nur für Wartung und Sicherheit auslösen, indem du auf Switch to automatic updates for maintenance and security releases only klickst.

Umschalten auf automatische Updates nur für Wartungs- und Sicherheitsversionen
Umschalten auf automatische Updates nur für Wartungs- und Sicherheitsversionen

Wichtige automatische Core-Updates für Entwickler

Erstens, wenn die automatischen Hauptaktualisierungen des Cores aktiviert sind, wird die Option auto_update_core_major mit aktiviertem option_value in der Datenbank gespeichert. Wenn get_site_option( 'auto_update_core_major' ) also true zurückgibt, ist das Kontrollkästchen für automatische Aktualisierungen aktiviert.

Dann prüft WordPress, ob wichtige automatische Core-Updates durch die Konstante WP_AUTO_UPDATE_CORE oder den Filter allow_major_auto_core_updates aktiviert sind, und setzt das Kontrollkästchen entsprechend.

Entwickler können auch größere Core-Auto-Updates deaktivieren, indem sie die Konstante WP_AUTO_UPDATE_CORE wie unten gezeigt auf false oder minor setzen (siehe auch Steuerung von Hintergrund-Updates durch wp-config.php):

# Disables all core updates:
define( 'WP_AUTO_UPDATE_CORE', false );

# Enables minor updates:
define( 'WP_AUTO_UPDATE_CORE', 'minor' );

Beachten Sie, dass mögliche Werte für WP_AUTO_UPDATE_CORE true (alle), 'beta', 'rc', 'minor', false sind.

Eine weitere Möglichkeit, wichtige automatische Core-Auto-Updates standardmäßig zu deaktivieren, ist die Verwendung des neuen allow_major_auto_core_updates-Filters:

add_filter( 'allow_major_auto_core_updates', '_return_false' );

Einige Anmerkungen zum Hinzufügen von Auto-Updates zum Core

Im Dezember 2018 teilte Matt Mullenweg die neun Prioritäten für das Jahr 2019 mit, wobei „Providing a way for users to opt-in to automatic updates of major Core releases“ die Nummer 7 war. Vielleicht etwas spät, aber wir sind auf dem besten Weg dahin.

Größere automatische Core-Updates sollten einen großen Einfluss auf die Sicherheit von WordPress und die Gesamterfahrung haben. Eines scheint klar zu sein: Aus technischer Sicht ist die Funktion der großen automatischen Kern-Updates eine komplexe Aufgabe, die mit der Veröffentlichung von WordPress 5.6 nicht zu 100% erfüllt ist.

Nach einer nachdenklichen Diskussion über Slack fasste Josepha Haden die Bedenken und Fragen der Hauptmitarbeiter zusammen.

Langfristiges Hauptziel ist es, auf den meisten WordPress-Webseiten automatische Aktualisierungen zur Verfügung zu stellen, um die Sicherheit im gesamten WordPress-Ökosystem (mehr als 30 % des Internets) zu verbessern.

Jedenfalls, so Helen Hou-Sandí, Core Lead Developer:

Meiner Meinung nach gibt es einige sehr schwierige technische Dinge, die es auszuführen gilt, und dazu bedarf es eines SEHR disziplinierten und zielgerichteten technischen Produkteigentums.

Wir sollten also im Laufe der Zeit weitere Änderungen und Verbesserungen der wichtigsten automatischen Core-Update-UI sehen. Dies ist das, was wir von jetzt an erwarten dürfen:

WordPress 5.6:

  • Bei bestehenden Installationen müssen größere Updates vom Benutzer aktiviert werden. Alle bereits benutzten Konstanten und Filter haben Vorrang. Kleinere Aktualisierungen sind standardmäßig aktiviert.
  • Bei Neuinstallationen sind sowohl kleinere als auch größere Updates standardmäßig aktiviert.

WordPress 5.6.1:

  • Aufgrund des Feedbacks sollten wir einige Änderungen an der Core-UI für automatische Aktualisierungen sehen.

WordPress 5.7:

  • Für alle, die sich gegen größere Auto-Updates entschieden haben, sollte auf dem Bildschirm Site Health ein Tipp hinzugefügt werden.
  • In WordPress 5.7 sollte dem Installationsprozess ein Opt-in für automatische Aktualisierungen hinzugefügt werden.

Eine große Sorge bei automatischen Core-Auto-Updates ist das Vertrauen der Benutzer. Laut Helen:

Ich glaube, dass wir noch viel Arbeit leisten können, um proaktiv um das Vertrauen der Benutzer zu werben, insbesondere derjenigen, die bereits schlechte Erfahrungen mit WordPress und/oder Updates gemacht haben.

Jede WordPress-Webseite ist jedoch eine Mischung aus Core, Plugins und Theme. Mit den Worten von Helen:

Core-Updates sind im Großen und Ganzen ziemlich sicher, und es sind einige Schutzvorrichtungen eingebaut, aber da Seiten jeden Code aus jeder Quelle ausführen können, gibt es so etwas wie „100%“ für „jede Art von WordPress-Webseite“ nicht.

Benutzer mit aktivierten automatischen Core-Auto-Updates sollten regelmäßig Backups ihrer Webseiten erstellen oder einen Web-Host wählen, der automatische Backups in ihren Plänen bereitstellt.

Core-Auto-Updates werden sich auch auf die gesamte Update-Erfahrung auswirken, einschließlich automatischer Plugin- und Theme-Updates. bemerkte Joost de Valk in einem Kommentar:

Wenn wir die automatischen WordPress-Core-Auto-Updates standardmäßig aktivieren, sollten wir dasselbe für Plugins tun. Andernfalls können Plugins und Themes nicht für Dinge aktualisiert werden, die sie aufgrund von Core-Updates korrigieren müssen. Ich denke, die Benutzer würden auch dies erwarten: Wenn WordPress-Auto-Updates automatisch durchgeführt werden, sollten auch Plugins und Themes automatisch aktualisiert werden.

Site Health Änderungen in WordPress 5.6

Neben all den hier besprochenen Funktionen bringt WordPress 5.6 auch eine verbesserte Version des Site Health-Tools mit, das sich nun im Hintergrund anders verhält.

Site Health Check Datenvalidierung

Ein Validator überprüft nun die Antworten auf die Fragen für Site Health-Tests. Der Validator verwirft jede ungültige Antwort, wodurch verhindert wird, dass das Site Health-Tool fatale Fehler verursacht, und alle weiteren Kontrollen gestoppt werden.

Von nun an haben ungültige Antworten keinen Einfluss mehr auf den Site Health Indikator (#50145).

Asynchrone Prüfungen über REST-Endpunkt

Das Site-Health-Tool ist ein leistungsstarkes Sicherheitstool, mit dem Webseiten-Eigentümer über den Gesundheitszustand ihrer Webseiten informiert werden können.

Dieses Tool führt eine Reihe von Sicherheitstests durch, die einen Überblick über den Gesundheitszustand Ihrer Webseite geben.

Diese Tests lassen sich in zwei Kategorien einteilen: direkte Tests, die beim Laden einer Seite ausgeführt werden, und asynchrone Tests, deren Ausführung einige Zeit in Anspruch nehmen kann und die später über JavaScript-Aufrufe ausgeführt werden.

Zuvor wurden diese Tests mit einem Aufruf von admin-ajax.php ausgeführt. Mit WordPress 5.6 bewegen sich die Dinge weg von admin-ajax.php, und stattdessen wird ein neuer REST-API-Endpunkt verwendet. Ab WordPress 5.6 können asynchrone Tests unter dem Namensraum /wp-json/wp-site-health/v1 gefunden werden.

Dank der neuen REST-API-Erweiterung können Plugins und Themes auch REST-Endpunkte nutzen und sind bei ihren Site Health Test nicht auf Ajax-Aktionen beschränkt.

Jeder asynchrone Test kann jetzt das has_rest-Argument deklarieren, das standardmäßig auf false gesetzt ist.

Der untenstehende Code aus wp-admin/includes/class-wp-site-health.php zeigt die Anordnung der asynchronen Tests in WordPress 5.6:

'async'  => array(
	'dotorg_communication' => array(
		'label'             => __( 'Communication with WordPress.org' ),
		'test'              => rest_url( 'wp-site-health/v1/tests/dotorg-communication' ),
		'has_rest'          => true,
		'async_direct_test' => array( WP_Site_Health::get_instance(), 'get_test_dotorg_communication' ),
	),
	'background_updates'   => array(
		'label'             => __( 'Background updates' ),
		'test'              => rest_url( 'wp-site-health/v1/tests/background-updates' ),
		'has_rest'          => true,
		'async_direct_test' => array( WP_Site_Health::get_instance(), 'get_test_background_updates' ),
	),
	'loopback_requests'    => array(
		'label'             => __( 'Loopback request' ),
		'test'              => rest_url( 'wp-site-health/v1/tests/loopback-requests' ),
		'has_rest'          => true,
		'async_direct_test' => array( WP_Site_Health::get_instance(), 'get_test_loopback_requests' ),
	),
	'authorization_header' => array(
		'label'     => __( 'Authorization header' ),
		'test'      => rest_url( 'wp-site-health/v1/tests/authorization-header' ),
		'has_rest'  => true,
		'headers'   => array( 'Authorization' => 'Basic ' . base64_encode( 'user:pwd' ) ),
		'skip_cron' => true,
	),
),

Geplante Site Health Checks:

Während asynchrone Tests implementiert wurden, um langsame Seiten lasten und Timeouts zu verhindern, gibt es solche Bedenken bei geplanten Tests nicht.

Vor diesem Hintergrund können Test-Arrays zusätzlich zu dem oben erwähnten has_rest-Argument auch das async_direct_test-Argument deklarieren (unter Verwendung des obigen Codes), das eine aufrufbare Instanz eines Tests sein sollte.

Wenn ein Test während eines geplanten Ereignisses ausgeführt wird, verwendet der Test nicht den REST-API-Endpunkt, sondern wird direkt ausgeführt.

Anwendungskennwörter für REST API-Authentifizierung

Application Passwords ist ein neues System für authentifizierte Anfragen an verschiedene WordPress-APIs.

Passwörter sind 24 Zeichen lang und bestehen aus Groß- und Kleinbuchstaben sowie numerischen Zeichen, die entweder manuell oder über die REST-API generiert werden können.

Um manuell ein neues Bewerbungspasswort zu generieren, gehe zu deinem Profil-Bildschirm und scrolle die Seite nach unten.

Anwendungskennwörter im Bildschirm Benutzerprofil
Anwendungskennwörter im Bildschirm Benutzerprofil

Wähle einen Namen für dein Anwendungskennwort und bestätige es. WordPress wird dein neues Passwort anzeigen.

Ein neues Anwendungskennwort
Ein neues Anwendungskennwort

Anwendungskennwörter werden in 4-stelligen, durch Leerzeichen getrennten Abschnitten angezeigt, wie unten dargestellt:

gsUc UhkU 0ScI gdRd TGoU vrW5

Passwörter können jedoch mit oder ohne Leerzeichen verwendet werden:

Die Anwendungskennwörter, die durch den Autorisierungsfluss zurückgegeben werden, enthalten keine Leerzeichen. Sie sind ausschließlich dazu da, es jemandem, der auf eine lange Zeichenfolge starrt, zu erleichtern, seinen Platz zu behalten, wenn er sie manuell eingibt.

Du kannst in Stücken, ohne Leerzeichen oder wenn du willst, könntest du wahrscheinlich nach jedem Zeichen ein Leerzeichen hinzufügen.

Auf dem Bildschirm Benutzerprofil kannst du Anwendungskennwörter anzeigen, erstellen und widerrufen. In den Spalten Zuletzt verwendet und Letzte IP kannst du leicht herausfinden, welche Passwörter nicht mehr verwendet werden und widerrufen werden sollten.

Zuletzt verwendete und letzte IP-Felder
Zuletzt verwendete und letzte IP-Felder

Zum Zeitpunkt der Erstellung dieses Dokuments können Anwendungskennwörter mit REST API-authentifizierten Anfragen und mit der XML-RPC-API verwendet werden. In Zukunft sollten jedoch Anwendungskennwörter mit zusätzlichen APIs verwendet werden. erklärt George Stephanis:

Das Authentifizierungsschema für Anwendungskennwörter kann auch auf zukünftige APIs für WordPress angewandt werden, sobald diese verfügbar sind. Wenn z.B. GraphQL oder andere Systeme in WordPress aktiviert sind, werden die Anwendungskennwörter ihnen eine solide, etablierte Authentifizierungsinfrastruktur bieten, die sie sofort nach dem Auspacken aufbauen können.

Ein authentifizierter Aufruf an die REST-API in Postman
Ein authentifizierter Aufruf an die REST-API in Postman

Die Verwendung von Anwendungskennwörtern auf wp-login.php ist nicht möglich.

Für einen genaueren Blick auf diese Funktion und weitere technische Einblicke solltest du dir die folgenden Ressourcen ansehen:

Bessere Unterstützung für PHP 8

PHP 8.0 bringt tonnenweise neue Funktionen und Optimierungen mit sich, die es zu einem echten Meilenstein in der Entwicklung der Sprache machen. Die neuere Version von PHP führt viele Aktualisierungen ein, die die Abwärtskompatibilität brechen, und viele veraltete Funktionen sind jetzt offiziell entfernt worden. Das Hinzufügen der Unterstützung für PHP 8 in WordPress ist also eine große Herausforderung.

Tatsächlich sollten wir nicht erwarten, dass jedes mögliche Problem entdeckt wird, selbst wenn die Mitwirkenden des WordPress Core große Anstrengungen unternehmen, um WordPress 5.6 mit PHP 8 kompatibel zu machen. Das Ziel hier ist es, einen Punkt zu erreichen, an dem das gesamte WordPress-Ökosystem mit PHP 8 kompatibel ist, was im Moment wirklich eine harte Nuss zu sein scheint.

Darüber hinaus enthält eine WordPress-Webseite mindestens ein Theme und eine variable Anzahl von Plugins. Was wir also erwarten können, ist eine gute Unterstützung für PHP 8 im WordPress-Core, aber es ist schwer zu glauben, dass Plugins und Themes schnell Unterstützung für PHP 8 hinzufügen werden.

Wir stimmen Jonathan Desrosiers zu, wenn er sagt:

Es ist unmöglich, den Stand der Unterstützung von PHP 8 innerhalb des breiteren Ökosystems (Plugins, Themes usw.) zu kennen. Aus diesem Grund sollte WordPress 5.6 als „beta-kompatibel“ mit PHP 8 betrachtet werden.

„Beta-kompatibel mit PHP 8“ scheint ein guter Ausdruck zu sein, um einen laufenden Prozess darzustellen, der noch viel Arbeit erfordert, aber gleichzeitig die bisher geleistete großartige Arbeit anerkennt.

Wie auch immer,

Alle Plugin- und Themeentwickler sowie die Hosting-Communities sind aufgerufen, ihren Code mit PHP 8 kompatibel zu machen. Auf diese Weise kann WordPress schneller wirklich „volle Kompatibilität“ erreichen, ohne dass die Endbenutzer die Last tragen müssen.

Einige PHP 8-Änderungen zur Kenntnisnahme

Wie wir bereits erwähnt haben, ist die vollständige Kompatibilität von WordPress mit PHP 8 noch in Arbeit. Jonathan Desrosiers stellt eine Liste von PHP 8-Funktionen und Änderungen vor, die WordPress-Entwickler beachten sollten.

Benannte Parameter

Mit PHP ist es nun möglich, benannte Argumente an eine Funktion zu übergeben, die auf dem Parameternamen und nicht auf der Parameterposition basiert. Dies erlaubt es, Code zu schreiben, der selbstdokumentierend ist, Argumente sind ordnungsunabhängig, und Standardwerte können beliebig übersprungen werden.

Leider können die derzeit benannten Parameter in WordPress Probleme mit der Abwärtskompatibilität verursachen. Der Hauptgrund dafür ist, dass Parameternamen bis zum Abschluss des aktuellen Audits ohne Vorankündigung geändert werden können. Zum Zeitpunkt des Verfassens dieses Artikels waren also:

Die Verwendung benannter Parameter beim Aufruf von WordPress-Funktionen und Klassenmethoden wird explizit nicht unterstützt und bis zum Abschluss dieser Prüfung dringend davon abgeraten, da die Parameternamen während der Prüfung ohne vorherige Ankündigung geändert werden können. Wenn diese Prüfung abgeschlossen ist, wird dies in einer zukünftigen Entwicklernotiz bekannt gegeben.

Strenge Typ-/Wert-Validierungen für interne Funktionen

Bei der Übergabe eines Parameters eines unzulässigen Typs verhalten sich interne und benutzerdefinierte Funktionen unterschiedlich. Benutzerdefinierte Funktionen werfen einen TypeError, aber interne Funktionen verhalten sich in Abhängigkeit von mehreren Bedingungen auf unterschiedliche Weise.

Um diese Inkonsistenzen zu beseitigen, erzeugen in PHP 8 die internen APIs zum Parsen von Parametern immer einen ThrowError, wenn der Parametertyp nicht übereinstimmt.

Strenge Typdeklaration wird in WordPress Core nicht verwendet. Die Core-Mitarbeiter arbeiten jedoch daran zu verhindern, daß ungültige Typen an Core-Funktionen übergeben werden. Bis diese Arbeit abgeschlossen ist, kann diese PHP 8-Änderung zu TypeErrors führen, „insbesondere wenn der Typ eines Wertes fälschlicherweise durch Code geändert wird, der mit einem Filter verbunden ist“.

Strengere Typprüfungen für arithmetische und bitweise Operatoren

In früheren Versionen von PHP war die Verwendung von arithmetischen und bitweisen Operatoren für ein Array, eine Ressource oder ein nicht überladenes Objekt erlaubt, aber das Verhalten war inkonsistent und manchmal sogar unvernünftig:

var_dump([] % [42]);
// int(0)

Mit PHP 8 ist das Verhalten immer dasselbe, und alle arithmetischen und bitweisen Operatoren werfen eine TypeError-Ausnahme, wenn der Operand ein Array, eine Ressource oder ein nicht überladenes Objekt ist (siehe RFC).

Dies ist eine weitere Änderung, die einige zusätzliche Arbeit von den Hauptbeitragszahlern erfordert, wie z.B. die vielen Fehler, Warn- und Hinweisänderungen.

Auch hier wird aufgrund der verschiedenen noch ungelösten Probleme dringend empfohlen, Kompatibilitätstests in einer Staging-oder Entwicklungsumgebung durchzuführen, bevor du die Umstellung auf PHP 8 auf deiner Live-Webseite vornimmst. Lies mehr über WordPress und PHP 8.0.

Zusätzliche Änderungen für Entwickler

WordPress 5.6 führt Tonnen von Änderungen für Entwickler ein, und wir konnten nicht alle in unsere Liste aufnehmen. Aber hier sind die Top 3, die wir für sehenswert halten:

1. wp_after_insert_post Action Hook

Vor WordPress 5.6 konnte man save_posts oder ähnliche Aktionen verwenden, um benutzerdefinierten Code auszuführen, nachdem ein Beitrag veröffentlicht wurde. Jetzt führt WordPress 5.6 den neuen wp_after_insert_post Action Hook ein, der erst nach dem Speichern von Begriffen und Metadaten ausgelöst wird.

Darüber hinaus wurden mehrere Funktionen aktualisiert, um zu verhindern, dass diese Hooks abgefeuert werden. Der neue Parameter $fire_after_hooks wurde zu den Funktionen wp_insert_post(), wp_update_post() und wp_insert_attachment() hinzugefügt. Wenn er auf false gesetzt wird, verhindert er, dass die After-Insert-Hooks abgefeuert werden.

Schaue dir die devnote für einen tieferen Überblick an.

2. Typisierung

Die Typecasting-Funktionen intval(), strval(), floatval() und boolval() wurden zugunsten des direkten Typecasting aus dem Core entfernt:

  1. intval()(int)
  2. strval()(string)
  3. floatval()(float)

Diese Änderung hat direkte Auswirkungen auf die Leistung, da das direkte Typecasting ~6x schneller ist als Typecasting-Funktionen.

3. WP_Fehlerobjekte

Die Klasse WP_Error wurde erweitert, um das Zusammenführen mehrerer WP_Error-Instanzen zu einer einzigen zu ermöglichen. Zuvor konnte man dies nur manuell tun. Jetzt führt WordPress 5.6 drei neue Methoden ein, die bei der Handhabung mehrerer WP_Error-Instanzen helfen. Der folgende Code ist ein Beispiel aus dem Entwicklerhinweis:

<?php
$error_1 = new WP_Error(
	'code1',
	'This is my first error message.',
	'Error_Data'
);
 
$error_2 = new WP_Error(
	'code2',
	'This is my second error message.',
	'Error_Data2'
);
 
// Merge from another WP_Error.
$error_1->merge_from( $error_2 );
 
// Retrieve all error data, optionally for a specific error code.
$error_1->get_all_error_data( 'code2' );
 
// Export to another WP_Error
$error_1->export_to( $error_2 );

Weitere Lektüre für Entwickler

Es ist unmöglich, alle Änderungen zu erwähnen, die mit WordPress 5.6 eingeführt wurden, aber man kann mit Hilfe der folgenden Ressourcen mehr darüber lesen:

Zusammenfassung

WordPress 5.6 ist eine Hauptversion mit zahlreichen Funktionen und Änderungen sowohl für Benutzer als auch für Entwickler. Wir sind immer gespannt, wie sich die Entwicklung der Webtechnologien direkt auf die Sicherheit, Leistung, Benutzerfreundlichkeit und Zugänglichkeit von WordPress auswirkt.

Aber die Entwicklung hört nie auf, und wir können schon jetzt einen Blick auf zukünftige mögliche Veröffentlichungstermine werfen.

Jetzt bist du dran: Was gefällt dir am besten an WordPress 5.6? Und welche Funktionen würdest du gerne in WordPress 5.7 hinzufügen?

Carlo Daniele Kinsta

Carlo is a passionate lover of webdesign and front-end development. He has been playing with WordPress for more than 20 years, also in collaboration with Italian and European universities and educational institutions. He has written hundreds of articles and guides about WordPress, published both on Italian and international websites, as well as on printed magazines. You can find him on LinkedIn.