{"id":2092,"date":"2020-12-15T09:00:00","date_gmt":"2020-12-15T08:00:00","guid":{"rendered":"http:\/\/revue.local\/?post_type=dev&p=2092"},"modified":"2021-03-04T14:06:07","modified_gmt":"2021-03-04T13:06:07","slug":"kein-schwarzer-tag-das-ist-neu-in-wordpress-5-6-fuer-entwickler-%f0%9f%a4%93","status":"publish","type":"dev","link":"https:\/\/revue.local\/dev\/kein-schwarzer-tag-das-ist-neu-in-wordpress-5-6-fuer-entwickler-%f0%9f%a4%93\/","title":{"rendered":"Kein schwarzer Tag: Das ist neu in WordPress 5.6 f\u00fcr Entwickler 🤓"},"content":{"rendered":"\n
Es ist Black Friday und nun wirklich kein schwarzer Tag. Sondern ein Tag voller Angebote. Mein Plugin SNIP – Das Strukturierte Daten Plugin f\u00fcr WordPress<\/a> – ist auch wieder mit dabei. Es wurde vom Marketing-Team bei Envato, zu denen CodeCanyon und Themeforest geh\u00f6rt, wieder zu diesem besonderen Event ausgew\u00e4hlt. Es ist deshalb 50% g\u00fcnstiger<\/strong> und nur f\u00fcr eine Woche. Bei CodeCanyon<\/strong> hei\u00dft das Event \u00fcbrigens CyberMonday. Umgerechnet ca. 25\u20ac ist schon fast unversch\u00e4mt g\u00fcnstig. Wer da nicht zugreift… Selber Schuld 😂<\/p>\n\n\n\n Dar\u00fcber hinaus erblickt WordPress 5.6 voraussichtlich am 8. Dezember das Licht der Welt. Zeit also mal genauer hinzuschauen, was es alles Neues gibt.<\/p>\n\n\n\n Die WordPress Revue erscheint im neuen Jahr nur noch einmal im Quartal. Dann mit der geballten Ladung WordPress-News.<\/p>\n\n\n\n Ich w\u00fcnsche Ihnen eine gute Adventszeit und schon vorab einen guten Start ins neue Jahr. Vielen Dank f\u00fcr die Treue in 2020!<\/p>\n\n\n\n Ihr Dipl. Ing. (FH) Florian Simeth<\/p>\n\n\n\n WordPress 5.5.2<\/a> hatte leider einen bl\u00f6den 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<\/a>. Zusammen einem kleinen Datenbank-Fix.<\/p>\n\n\n\n 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<\/a> ⚠️<\/p>\n\n\n\n Nicht alle Plugins werden mit PHP 8 kompatibel sein. Ein direkter Umstieg ist also derzeit nicht anzuraten.<\/p>\n\n\n\n Mit dem Rollout von WP 5.6 gilt es wieder die W\u00fcnsche zu erfassen: Was soll in WP 5.7 alles hinein?<\/a> Ein gro\u00dfer Patzen ist ja schon bekannt: Full Site Editing zum Beispiel. Nichtsdestotrotz sollte man seinen Senf mal dazugeben.<\/p>\n\n\n\n Benutzer k\u00f6nnen sich nun sogenannte Application-Passw\u00f6rter erstellen. Damit wird der Zugriff auf die REST-API einfacher. Den detaillierten Integration Guide<\/a> gibt es hier.<\/p>\n\n\n\n Plugin-Auto-Updates war ja schon Bestandteil fr\u00fcherer WP-Versionen. Was nun nachgereicht wird, ist die Auto-Update-Funktion f\u00fcr WordPress selbst<\/a>. Nach dem Update bleibt alles aber erst einmal so, wie es war: Wichtige Sicherheitsupdates werden automatisch eingespielt. F\u00fcr gr\u00f6\u00dfere, automatische Updates (so genannte „Major Updates“) gibt es dann ein freiwilliges Opt-In.<\/p>\n\n\n\n Auch am Blockeditor („Gutenberg“) wurde flei\u00dfig weiterentwickelt. Die Enwicklungsversionen 8.6 bis 9.2 werden in die neue WP-Version flie\u00dfen. Ebenfalls alle Fehlerbehebungen aus 9.3 und 9.4. Das hat sich im Detail getan:<\/p>\n\n\n\n WordPress 5.6 setzt Teil 2 des dreistufigen Plans, jQuery zu erneuern<\/a>, in die Tat um. WordPress-Nutzer, die zuvor schon Probleme hatten, sollten das Enable jQuery Migrate Helper Plugin<\/a> installieren. Die ganze Thematik ist nicht ganz unproblematisch. Das Plugin hat schon mehr als 200’000 Installationen.<\/p>\n\n\n\n Neues Default Theme namens „Twenty Twenty One“. Es ist quasi nur eine Art „leeres“ Theme f\u00fcr den Block Editor und seine Funktionen. So sieht’s aus:<\/p>\n\n\n\n Das TwentyTwentyOne Theme hat auch einen DarkMode, der sich \u00fcber den Customizer einstellen l\u00e4sst.<\/p>\n\n\n\n Ein neues Plugin Passwordless WP<\/a> r\u00fcstet unser beliebtes CMS mit einer sch\u00f6nen Funktion nach: Login via TouchID oder FaceID.<\/p>\n\n\n\n Auch ein gutes Plugin: Find My Blocks<\/a> zeigt \u00fcbersichtlich an, auf welcher Seite man welche Gutenberg-Bl\u00f6cke nutzt.<\/p>\n\n\n\n Wie oben bereits erw\u00e4hnt, wird der Neue, auf Bl\u00f6cken basierende Widget-Screen nicht Teil von WordPress 5.6 sein<\/a>, sondern auf 5.7 verschoben.<\/p>\n\n\n\n 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<\/a>. So zum Beispiel die sogenannten Named Parameters. Eine \u00dcbersicht, was es in PHP 8 alles Neues gibt,<\/a> finden Sie hier. Sch\u00f6ne Dinge aus dem Blogpost sind z.B.<\/p>\n\n\n\n Union types:<\/strong><\/p>\n\n\n\n Nullable unions:<\/strong><\/p>\n\n\n\n Null Coalescing Operator bei Funktionen:<\/strong><\/p>\n\n\n\n Named arguments:<\/strong><\/p>\n\n\n\n Der mixed-Datentyp:<\/strong><\/p>\n\n\n\n Braucht man \u00f6fter als gedacht:<\/strong><\/p>\n\n\n\n Oder:<\/strong><\/p>\n\n\n\n Der WordPress 5.6 Field Guide<\/a> zeigt im Detail, was sich f\u00fcr Entwickler alles ver\u00e4ndert hat. Unten noch einmal aufgelistet, was f\u00fcr Entwickler besonders wichtig ist:<\/p>\n\n\n\n Die BlockAPI liegt in Version 2<\/a> vor. Hauptziel war es, den DOM-Baum des Editors leichtgewichtiger zu machen. Um die neue API zu nutzen, muss man diese explizit aktivieren:<\/p>\n\n\n\n Eine weitere API<\/a> hei\u00dft Bl\u00f6cke k\u00f6nnen viele weitere „Block-Supports“ angeben<\/a>. Unter anderem f\u00fcr Hintergrundfarben, Verl\u00e4ufe, Schriftgr\u00f6\u00dfe und viele mehr. So muss man diese Funktionen nicht selbst in die Bl\u00f6cke integrieren. Allerdings muss das aktive Theme das (\u00fcber ein Opt-In) unterst\u00fctzen.<\/p>\n\n\n\n Im Editor selbst wurde das Styling ver\u00e4ndert. Gr\u00f6\u00dfenangaben nutzen jetzt relative statt absolute Werte.<\/a> Zuvor wurden hart gecodete Pixelwerte benutzt. Dies f\u00fchrt also m\u00f6glicherweise dazu, dass eure Bl\u00f6cke nicht mehr passend aussehen.<\/p>\n\n\n\n Die Reusable-Blocks-API ist jetzt ein separates Paket<\/a> unter @wordpress\/reusable-blocks. Zuvor war es Teil von @wordpress\/editor.<\/p>\n\n\n\n Die Handhabung von Toolbar-Komponenten<\/a> hat sich ver\u00e4ndert. Die Teil 2 des dreistufigen Plans, jQuery zu erneuern<\/a>, 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, In der REST-API gibt es nun die M\u00f6glichkeit, eine Serie von REST-API-Aufrufen in einen einzigen Request abzusetzen. Dazu setzt man das Batch-Requests werden dann an die neue Route abgesetzt. Erwartet wird ein Array von REST-Routen, die abgefragt werden sollen:<\/p>\n\n\n\n Es gibt wieder mal einen neuen Action-Hook<\/a>: Asynchrone JavaScript-Health-Checks ziehen<\/a> um und bekommen eine neue REST-Route spendiert: Dar\u00fcber hinaus werden nun einige Health-Checks nach Zeitplan abgearbeitet, um ressourcenintensive Checks beim Aufruf der Seite zu vermeiden.<\/p>\n\n\n\n \u00dcberdies interessant f\u00fcr alle Entwickler<\/a> unter Ihnen:<\/p>\n\n\n\n Das war’s! Bis zum n\u00e4chsten Mal!<\/p>\n\n\n\n Ihr Dipl. Ing. (FH) Florian Simeth<\/p>\n","protected":false},"template":"","meta":{"_f\/revue\/cleverreach\/mail_id":"13765974","_f\/revue\/cleverreach\/send_now":false},"acf":[],"yoast_head":"\nWordPress News<\/h2>\n\n\n\n
\n\n\n\n
\n\n\n\n
\n\n\n\n
\n\n\n\n
\n\n\n\n<\/a><\/figure><\/div>\n\n\n\n
\n\n\n\n
\n\n\n\n
\n\n\n\n<\/figure>\n\n\n\n
\n\n\n\n
\n\n\n\n
\n\n\n\n
\n\n\n\nWordPress Entwickler News<\/h2>\n\n\n\n
public function foo(Foo|Bar $input): int|float;<\/code><\/pre>\n\n\n\n
public function foo(Foo|null $foo): void;\n# Das Wort \"null\" kann man sich auch sparen. Daf\u00fcr steht das Fragezeichen:\npublic function bar(?Bar $bar): void;<\/code><\/pre>\n\n\n\n
$dateAsString = $startDate ? $startDate->asDateTimeString() : null;\n# wird zu:\n$dateAsString = $booking->getStartDate()?->asDateTimeString();<\/code><\/pre>\n\n\n\n
# Folgende Funktion:\nfunction foo(string $a, string $b, ?string $c = null, ?string $d = null) \n{ \/* \u2026 *\/ }\n\n# l\u00e4sst sich auch so aufrufen:\nfoo(\n b: 'value b', \n a: 'value a', \n d: 'value d',\n);<\/code><\/pre>\n\n\n\n
function bar(): mixed {}<\/code><\/pre>\n\n\n\n
# Statt:\nif (strpos('string with lots of words', 'words') !== false) { \/* \u2026 *\/ }\n\n# geht jetzt auch:\nif (str_contains('string with lots of words', 'words')) { \/* \u2026 *\/ }<\/code><\/pre>\n\n\n\n
str_starts_with('haystack', 'hay'); \/\/ true\nstr_ends_with('haystack', 'stack'); \/\/ true<\/code><\/pre>\n\n\n\n
\n\n\n\n
\n\n\n\nregisterBlockType( name, { apiVersion: 2 } );<\/code><\/pre>\n\n\n\n
\n\n\n\ncreateBlocksFromInnerBlocksTemplate<\/code>. Damit lassen sich Bl\u00f6cke aus
InnerBlocks<\/code>-Templates erstellen.<\/p>\n\n\n\n
\n\n\n\n
\n\n\n\n
\n\n\n\n
\n\n\n\nToolbar<\/code>-Komponente sollte nicht (mehr) zur Gruppierung genutzt werden. Dazu gibt es jetzt die
ToolbarGroup<\/code>-Komponente. <\/p>\n\n\n\n
\n\n\n\nSCRIPT_DEBUG<\/code> in der wp-config.php zu aktivieren um genauere nachvollziehen zu k\u00f6nnen, wo es Probleme mit Plugins gibt, die \u00e4ltere jQuery-Funktionen nutzen.<\/p>\n\n\n\n
\n\n\n\nallow_batch<\/code>-Flag beim Registrieren der REST-Route.<\/p>\n\n\n\n
register_rest_route( 'my-ns\/v1', 'my-route', array(\n 'methods' => WP_REST_Server::CREATABLE,\n 'callback' => 'my_callback',\n 'permission_callback' => 'my_permission_callback',\n 'allow_batch' => array( 'v1' => true ),\n) );<\/code><\/pre>\n\n\n\n
https://yoursite.test\/wp-json\/batch\/v1\n{\n \"requests\": [\n {\n \"path\": \"\/my-ns\/v1\/route\"\n }\n ]\n}<\/code><\/pre>\n\n\n\n
\n\n\n\nwp_after_insert_post<\/code> existiert, um Theme- und Plugin-Entwicklern zu erm\u00f6glichen, benutzerdefinierten Code auszuf\u00fchren, nachdem ein Beitrag, seine Terme und Metadaten aktualisiert wurden.<\/p>\n\n\n\n
\n\n\n\n\/wp-json\/wp-site-health\/v1<\/code>.<\/p>\n\n\n\n
\n\n\n\nintval()<\/code>,
strval()<\/code>, etc. wurden ersetzt durch
(int)<\/code>,
(string)<\/code>, etc.<\/li>
WP_Error<\/code>-Klasse hat nun eine Funktion zum Zusammenf\u00fchren mehrerer Fehler:
merge_from()<\/code>.<\/li>
new_site_email_filter<\/code>,
send_new_site_email<\/code> und
network_site_info_form<\/code>.<\/li>
posts.post-category<\/code> in der Datenbank wird in WP 5.6 gel\u00f6scht. Sie hatte seit Version 2.8 keine Funktion mehr.<\/li>
wp_send_json()<\/code>) bekommen ein neuen Paramter:
$options<\/code>.<\/li>