Kein schwarzer Tag: Das ist neu in WordPress 5.6 fĂĽr Entwickler 🤓

Howdy {VORNAME[std:WordPress-Liebhaber]}!

Es ist Black Friday und nun wirklich kein schwarzer Tag. Sondern ein Tag voller Angebote. Mein Plugin SNIP – Das Strukturierte Daten Plugin fĂĽr WordPress – ist auch wieder mit dabei. Es wurde vom Marketing-Team bei Envato, zu denen CodeCanyon und Themeforest gehört, wieder zu diesem besonderen Event ausgewählt. Es ist deshalb 50% gĂĽnstiger und nur fĂĽr eine Woche. Bei CodeCanyon heiĂźt das Event ĂĽbrigens CyberMonday. Umgerechnet ca. 25€ ist schon fast unverschämt gĂĽnstig. Wer da nicht zugreift… Selber Schuld 😂

DarĂĽber hinaus erblickt WordPress 5.6 voraussichtlich am 8. Dezember das Licht der Welt. Zeit also mal genauer hinzuschauen, was es alles Neues gibt.

Die WordPress Revue erscheint im neuen Jahr nur noch einmal im Quartal. Dann mit der geballten Ladung WordPress-News.

Ich wĂĽnsche Ihnen eine gute Adventszeit und schon vorab einen guten Start ins neue Jahr. Vielen Dank fĂĽr die Treue in 2020!

Ihr Dipl. Ing. (FH) Florian Simeth

WordPress News

WordPress 5.5.2 hatte leider einen blöden Bug: Das Auto-Update System von WordPress hatte ein paar Seiten von Version 5.5.2 auf Version 5.5.3-alpha aktualisiert. Das wurde in 5.5.3 korrigiert. Zusammen einem kleinen Datenbank-Fix.


PHP 8 ist gestern erschienen. WP 5.6 wurde bereits angepasst, es gibt allerdings ein paar Fallstricke, deswegen sollten Sie diesen Artikel hier an Ihre Entwickler weiterleiten ⚠️


Nicht alle Plugins werden mit PHP 8 kompatibel sein. Ein direkter Umstieg ist also derzeit nicht anzuraten.


Mit dem Rollout von WP 5.6 gilt es wieder die WĂĽnsche zu erfassen: Was soll in WP 5.7 alles hinein? Ein groĂźer Patzen ist ja schon bekannt: Full Site Editing zum Beispiel. Nichtsdestotrotz sollte man seinen Senf mal dazugeben.


Benutzer können sich nun sogenannte Application-Passwörter erstellen. Damit wird der Zugriff auf die REST-API einfacher. Den detaillierten Integration Guide gibt es hier.


Plugin-Auto-Updates war ja schon Bestandteil frĂĽherer WP-Versionen. Was nun nachgereicht wird, ist die Auto-Update-Funktion fĂĽr WordPress selbst. Nach dem Update bleibt alles aber erst einmal so, wie es war: Wichtige Sicherheitsupdates werden automatisch eingespielt. FĂĽr größere, automatische Updates (so genannte „Major Updates“) gibt es dann ein freiwilliges Opt-In.

WordPress Update-Dashboard mit freiwilligem Opt-In

Auch am Blockeditor („Gutenberg“) wurde fleiĂźig weiterentwickelt. Die Enwicklungsversionen 8.6 bis 9.2 werden in die neue WP-Version flieĂźen. Ebenfalls alle Fehlerbehebungen aus 9.3 und 9.4. Das hat sich im Detail getan:

  • Gutenberg 8.6:
    • Der Video-Cover-Block lässt sich nun besser Positionieren.
    • Updates bei einigen Block-Vorlagen.
  • Gutenberg 8.7:
    • Viele kleinere Detailverbesserungen.
  • Gutenberg 8.8:
    • Detailverbesserung hinsichtlich der Zugänglichkeit fĂĽr eingeschränkte Personen sowie im Mobile-Browser.
  • Gutenberg 8.9:
    • Der neue Widget-Bereich ist nicht länger experimentell. (Trotzdem landet er nicht mehr in WP 5.6).
    • Es gibt wieder eine Wörter- und Zeichen-Zählung.
    • Im „Neueste Blogposts“-Block können die Links zu den Featured-Bildern angepasst werden.
    • Der List-Block gibt’s jetzt in Farbe.
  • Gutenberg 9.0:
    • Fokuspunkt war der neue Navigation-Screen.
    • Dazu bekam der Query-Block neue Abfragemöglichkeiten. Man kann nun Suchwörter angeben, nach Autoren und Tags suchen und eine Sortierung angeben.
  • Gutenberg 9.1:
    • Intensive Arbeiten am Widget-Bildschirm.
    • Mithilfe einer theme.json-Datei lässt sich der Block-Editor nun besser kontrollieren.
  • Gutenberg 9.2:
    • Videos können nun mit Untertitel ausgezeichnet werden.
    • Mehrere ausgewählte Blöcke können in einen Spalten-Block umgewandelt werden.
    • Hintergrundmuster fĂĽr den Cover-Block.

WordPress 5.6 setzt Teil 2 des dreistufigen Plans, jQuery zu erneuern, in die Tat um. WordPress-Nutzer, die zuvor schon Probleme hatten, sollten das Enable jQuery Migrate Helper Plugin installieren. Die ganze Thematik ist nicht ganz unproblematisch. Das Plugin hat schon mehr als 200’000 Installationen.


Neues Default Theme namens „Twenty Twenty One“. Es ist quasi nur eine Art „leeres“ Theme fĂĽr den Block Editor und seine Funktionen. So sieht’s aus:


Das TwentyTwentyOne Theme hat auch einen DarkMode, der sich über den Customizer einstellen lässt.


Ein neues Plugin Passwordless WP rüstet unser beliebtes CMS mit einer schönen Funktion nach: Login via TouchID oder FaceID.


Auch ein gutes Plugin: Find My Blocks zeigt übersichtlich an, auf welcher Seite man welche Gutenberg-Blöcke nutzt.


Wie oben bereits erwähnt, wird der Neue, auf Blöcken basierende Widget-Screen nicht Teil von WordPress 5.6 sein, sondern auf 5.7 verschoben.

WordPress Entwickler News

Darauf haben wir alle gewartet: PHP 8 ist gestern erschienen. Es ist an der Zeit, die eigenen Themes und Plugins daran anzupassen. Aber Achtung: Nicht alles ist supported. So zum Beispiel die sogenannten Named Parameters. Eine Übersicht, was es in PHP 8 alles Neues gibt, finden Sie hier. Schöne Dinge aus dem Blogpost sind z.B.

Union types:

public function foo(Foo|Bar $input): int|float;

Nullable unions:

public function foo(Foo|null $foo): void;
# Das Wort "null" kann man sich auch sparen. DafĂĽr steht das Fragezeichen:
public function bar(?Bar $bar): void;

Null Coalescing Operator bei Funktionen:

$dateAsString = $startDate ? $startDate->asDateTimeString() : null;
# wird zu:
$dateAsString = $booking->getStartDate()?->asDateTimeString();

Named arguments:

# Folgende Funktion:
function foo(string $a, string $b, ?string $c = null, ?string $d = null) 
{ /* … */ }

# lässt sich auch so aufrufen:
foo(
    b: 'value b', 
    a: 'value a', 
    d: 'value d',
);

Der mixed-Datentyp:

function bar(): mixed {}

Braucht man öfter als gedacht:

# Statt:
if (strpos('string with lots of words', 'words') !== false) { /* … */ }

# geht jetzt auch:
if (str_contains('string with lots of words', 'words')) { /* … */ }

Oder:

str_starts_with('haystack', 'hay'); // true
str_ends_with('haystack', 'stack'); // true

Der WordPress 5.6 Field Guide zeigt im Detail, was sich für Entwickler alles verändert hat. Unten noch einmal aufgelistet, was für Entwickler besonders wichtig ist:


Die BlockAPI liegt in Version 2 vor. Hauptziel war es, den DOM-Baum des Editors leichtgewichtiger zu machen. Um die neue API zu nutzen, muss man diese explizit aktivieren:

registerBlockType( name, { apiVersion: 2 } );

Eine weitere API heißt createBlocksFromInnerBlocksTemplate. Damit lassen sich Blöcke aus InnerBlocks-Templates erstellen.


Blöcke können viele weitere „Block-Supports“ angeben. Unter anderem fĂĽr Hintergrundfarben, Verläufe, Schriftgröße und viele mehr. So muss man diese Funktionen nicht selbst in die Blöcke integrieren. Allerdings muss das aktive Theme das (ĂĽber ein Opt-In) unterstĂĽtzen.


Im Editor selbst wurde das Styling verändert. Größenangaben nutzen jetzt relative statt absolute Werte. Zuvor wurden hart gecodete Pixelwerte benutzt. Dies führt also möglicherweise dazu, dass eure Blöcke nicht mehr passend aussehen.


Die Reusable-Blocks-API ist jetzt ein separates Paket unter @wordpress/reusable-blocks. Zuvor war es Teil von @wordpress/editor.


Die Handhabung von Toolbar-Komponenten hat sich verändert. Die Toolbar-Komponente sollte nicht (mehr) zur Gruppierung genutzt werden. Dazu gibt es jetzt die ToolbarGroup-Komponente.


Teil 2 des dreistufigen Plans, jQuery zu erneuern, wird umgesetzt. So findet man in WP 5.6 nun die jQuery Version 3.5.1 mit jQuery Migrate 3.3.2. Es wird empfohlen, SCRIPT_DEBUG in der wp-config.php zu aktivieren um genauere nachvollziehen zu können, wo es Probleme mit Plugins gibt, die ältere jQuery-Funktionen nutzen.


In der REST-API gibt es nun die Möglichkeit, eine Serie von REST-API-Aufrufen in einen einzigen Request abzusetzen. Dazu setzt man das allow_batch-Flag beim Registrieren der REST-Route.

register_rest_route( 'my-ns/v1', 'my-route', array(
    'methods'             => WP_REST_Server::CREATABLE,
    'callback'            => 'my_callback',
    'permission_callback' => 'my_permission_callback',
    'allow_batch'         => array( 'v1' => true ),
) );

Batch-Requests werden dann an die neue Route abgesetzt. Erwartet wird ein Array von REST-Routen, die abgefragt werden sollen:

https://yoursite.test/wp-json/batch/v1
{
  "requests": [
    {
      "path": "/my-ns/v1/route"
    }
  ]
}

Es gibt wieder mal einen neuen Action-Hook: wp_after_insert_post existiert, um Theme- und Plugin-Entwicklern zu ermöglichen, benutzerdefinierten Code auszuführen, nachdem ein Beitrag, seine Terme und Metadaten aktualisiert wurden.


Asynchrone JavaScript-Health-Checks ziehen um und bekommen eine neue REST-Route spendiert: /wp-json/wp-site-health/v1.

DarĂĽber hinaus werden nun einige Health-Checks nach Zeitplan abgearbeitet, um ressourcenintensive Checks beim Aufruf der Seite zu vermeiden.


Ăśberdies interessant fĂĽr alle Entwickler unter Ihnen:

  • Sämtliche Vorkommen von Type-Conversion-Funktionen intval(), strval(), etc. wurden ersetzt durch (int), (string), etc.
  • Die WP_Error-Klasse hat nun eine Funktion zum ZusammenfĂĽhren mehrerer Fehler: merge_from().
  • Neue Filter: new_site_email_filter, send_new_site_email und network_site_info_form.
  • Die Spalte posts.post-category in der Datenbank wird in WP 5.6 gelöscht. Sie hatte seit Version 2.8 keine Funktion mehr.
  • Die JSON-Response-Funktionen (z.B. wp_send_json()) bekommen ein neuen Paramter: $options.
  • Composer 2.0 Support.
  • Einige Libraries erhalten ein Updaten: Lodash, React, React-Dom Twemoji.

Das war’s! Bis zum nächsten Mal!

Ihr Dipl. Ing. (FH) Florian Simeth

Meine Produkte und Lösungen

wp-kurs.com Logo

Bei wp-kurs.com finden Sie – wie der Name schon verrät – unseren WordPress-Video-Onlinekurs fĂĽr Anfänger. Er hilft Ihnen dabei, WordPress von Grund auf kennenzulernen.


eBook-Cover von wp-plugin-erstellen.de

Sie fangen gerade an zu programmieren und suchen nach einer deutschsprachigen Entwickler-Dokumentation für WordPress? Dann sind Sie bei wp-plugin-erstellen.de richtig. Ein eBook verrät mit vielen Beispielen, wie sich eigene Plugins für WordPress erstellen lassen. Es wird derzeit monatlich aktualisiert und erweitert.


Sie sind kein Entwickler wollen aber trotzdem alle WordPress-News erhalten? Entscheiden Sie sich stattdessen fĂĽr meinen WordPress-Newsletter (fĂĽr Nicht-Entwickler).