Wie unser Hirn uns selbst austrickst

Uns allen ist irgendwie bewusst, dass wir ausgetrickst werden, oder? Apps für Soziale Medien werden so gemacht, dass wir möglichst viel Zeit dort verbringen.

Dass wir uns aber teilweise selbst austricksen, das war mir so eigentlich nicht bewusst. Das wurde mir erst klar, als ich so durch das Buch Teuer ist relativ von Dan Ariely und Jeff Kreisler las.

Buchcover: Teuer ist relativ

In meinem Nicht-Entwickler WordPress-Newsletter habe ich heute den IKEA-Effekt angeführt. Den kennt wohl jeder: dadurch, dass man selbst Arbeit in ein Produkt hängt (Aufbau des neuen Billy-Regals), wird das Endprodukt für deutlich wertvoller gehalten, als es eigentlich ist.

Gut, das lässt sich ja noch erklären. Irgendwie. Interessanter wird es schon, wenn wir uns „Rituale“ anschauen. Stellen Sie sich mal vor, Sie sitzen in einem noblen Restaurant. Der Kellner trägt einen Smoking. Er bringt Ihnen eine Flasche Wein. Sie lassen sich einschenken. Sie schwenken das Glas. Halten es gegen das Licht, sehen sich die Farbe an und nippen dann ein bisschen davon. Coole Vorstellung, nicht wahr?

So. Und nun stellen Sie sich vor, Sie sitzen in einem Restaurant mit Plastikstühlen, bekommen denselben Wein, nur von einem nicht so versierten Kellner eingeschenkt in eine Kaffeetasse.

Die meisten Menschen finden erstes Beispiel besser und (jetzt kommt’s) würden deutlich (!) mehr Geld für das Erlebnis im ersten Beispiel ausgeben. Und das, obwohl wir am Erlebnis teilweise selbst Schuld sind (immerhin schwenken wir selbst das Weinglas). Total plem plem, oder?

Vor ein paar Wochen war ich mit einem Freund auf einem Whisky-Tasting. Dort das gleiche: unsere Tischnachbarn haben mir erzählt, dass es schon fast egal ist, welchen Whisky man trinkt. Viel schöner ist es, irgendwo zu sitzen, in einem feinem Sessel, vielleicht mit einer Zigarre, mit den besten Kumpels, bei schummrigen Licht. Wieso nicht? Teuer ist eben Relativ.

Viel wichtiger als ein Restaurantbesuch ist, was man aus dem Buch lernen kann um die eigene Website zu verbessern. Ich bin auf meinen Landingpages gerade fleißig am testen… und werde natürlich berichten. Ich hoffe, Sie tun das auch?

WordPress News

WordPress 5.3 steht vor der Tür. Nicht ganz. Es muss erst noch November werden. Aber den ersten Release-Candidate gibt es schon. Termin ist der 12. November.


Ganz unverhofft kam diese Woche noch ein Update auf WordPress 5.2.4, welches mehrere Sicherheitslücken schloss (en).


Das Design-Team hat sich mit einem höheren Kontrast des gesamten Dashboards beschäftigt (en). Wer das Gutenberg-Plugin nutzt, hat das neue Layout vielleicht schon gesehen. In Version 5.3 wird dann alles ein bisschen anders aussehen.


Gutenberg ist der neue Editor, der in Version 5.0 Einzug hielt. Hier sind die Updates, die das Plugin im vergangenen Monat erhalten hat:

  • Version 6.5:
    • bekam einen Social-Links-Block.
    • Darüber hinaus wird der Inhalt nun im Browser zwischengespeichert, um einem Verlust des Inhalts zuvor zu kommen.
    • Einige Blöcke bekamen neue Features, wie z.B. die Möglichkeit einen Radius für Outlines zu definieren.
    • Ab dieser Version kann man direkt in Gutenberg nach Blöcken suchen und diese installieren.
  • Version 6.6:
    • Fokus auf Stabilität und Performance.
  • Version 6.7 bekam wieder mehr Funktionen:
    • Für Entwickler ist nun StorybookJS mit an Board. Es stellt eine isolierte Umgebung dar, in der die wiederverwendbaren WordPress UI-Komponenten entwickelt, getestet und präsentiert werden.
    • Für Buttons können nun Farbverläufe als Hintergrund definiert werden.

Ab Version 5.3 wird der Inhaber einer WordPress-Seite alle 6 Monate gefragt, ob seine E-Mail-Adresse noch korrekt ist (en).


Auch in der Kategorie „Website-Zustand“ tat sich wieder etwas. Folgende Änderungen fließen in „Site Health“:

  • Der Bewertungsindikator Seite „Website-Zustand“ im Dashboard hat nun keine Prozentanzeige mehr. Sie war nämlich nur da um anzuzeigen, wie viele Tests bestanden wurden, nicht wie perfekt eine Website war.
  • Wenn es einen PHP-Fatal-Error auf der Seite gibt, schickt WordPress eine Recovery-E-Mail an den Website-Inhaber. Sie enthielt aber keine näheren Informationen zum eigentlichen Problem. Deswegen werden zukünftig u.a. die WordPress-Version, die PHP-Version, die Theme-Version und Name des Plugins sowie dessen Version mitgeschickt.

Wer schon einmal Probleme mit einem großen Bildupload hatte kennt das: es wird kein Thumbnail erstellt. In WordPress 5.3 ändert sich das (en). Der Prozess wird einfach nochmal wiederholt.


Neu ist auch, wie mit großen Bildern generell umgegangen wird. Wird nämlich ein Bild erkannt, welches größer als 2560 Pixel ist, wird es gar nicht in der Mediathek gespeichert. Bzw. nur eine kleinere Version davon. Grund ist, dass solche Bilder im Web eigentlich nichts verloren haben und selten gebraucht werden (en). Über einen Filter-Hook kann ein Entwickler die Schwelle verändern.


Aus vielen mobilen Apps kennt man diese Funktion schon und WordPress bekommt sie jetzt auch: das Einblenden des Passworts im Login-Screen ist ebenso ab 5.3 verfügbar (en).

Fehler beim lesen von codepiraten.io REST API.

WordPress Entwickler News

Ab Version 5.3 sind in der Funktion register_nav_menus() keine Integer Slug-Bezeichnungen mehr erlaubt (en). Deshalb wird die neue Version eine Fehlermeldung ausgeben, falls das in Ihren Projekten der Fall ist.


Die Date/Time-Komponente erhält mit Version 5.3 ein umfangreiches Update (en). Der gesamte Code stammt noch aus PHP4-Zeiten und wurde quasi generalüberholt. Die neue Funktion wp_date() soll dabei die Ablöse für date_i18n() sein. Funktionsaufrufe wie current_time( 'timestamp' ) sind dafür nicht mehr empfohlen.


Aus für jQuery? Das WordPress-Core-Team hat anmerken lassen, dass „alles Neue“ in Zukunft nicht mehr auf jQuery aufbauen soll (en).


Mit 5.3 wird auf alle Fälle nicht nur jQuery-Version, sondern auch die BackboneJS-Version angehoben (en). Auf was man bei einem Update achten sollte, steht auf der verlinkten Seite. So könnten Entwickler, die On- und Off-Events in ihren Modellen überschreiben, auf einige Probleme stoßen, wenn sie listenTo-Events auf diese anwenden.


Mit Admin Notices hat das Theme-Review-Team nun ein Composer-Paket geschaffen. Der Hauptzweck ist eine standardisierte Methode zur Verfügung zu stellen, um Admin-Benachrichtigungen in konsistenter Weise unter Verwendung der standardmäßigen WordPress-Stile zu erstellen.


Mit den zahlreichen Updates von Gutenberg wird es eventuell nötig, dass Sie Ihre Blöcke aktualisieren. Alle Komponenten, die sich zuvor im Paket @wordpress/editor befanden, sind jetzt nur noch unter @wordpress/block-editor verfügbar (en). Eine entsprechende JavaScript-Warnmeldung wird in der Konsole ausgegeben.


Die Block-API wurde erweitert. Mit register_block_style() lassen sich via PHP neue Styles für Blöcke definieren (en).


Dazu gesellt sich die sogenannte Block Example API. Damit kann der User sofort sehen, wie ein Block aussehen sollte (en).


Für Theme-Entwickler gibt es in 5.3 ein bisschen mehr zu beachten (en):

  • Trotz WordPress‘ Engagement für Abwärtskompatibilität, hat das Gutenberg-Team diesen Ansatz nicht bei Blöcken beibehalten. Die Block-HTML-Ausgabe im Editor und im Frontend hat sich für einige Blöcke geändert. Diese Änderungen führen in vielen Fällen zum Bruch benutzerdefinierter Designstile, schreibt WP-Tavern.
  • Darüber hinaus gibt es einige neue CSS-Klassen, die hinzukommen (en).

Q hat während des Design-Meetings vorgeschlagen, neue Style-Guidelines für WordPress zu veröffentilchen (en).


Dazu passend wurde vorgeschlagen, eine Typskala einzuführen. Das ist eine konsistente Abfolge von Schriftgrößen (z.B. 6, 12, 24, 48, 96) die, wenn sie mit einem Faktor multipliziert werden, immer eine harmonische Schriftgröße ergeben (en).


Die neue Funktion wp_rel_ugc() hängt ein rel=ugc an einen Link an, wenn es sich dabei um einen von Benutzern erstellten Content handelt. Ganz so, wie Google es gerne möchte (en).


In 5.3 kommen nun auch endlich Object- und Array-Datentypen für die REST-API. Das heißt: man kann nun auch Arrays und Objekte als Post-Meta mit register_post_meta() registrieren (en).


Mit WordPress 4.9.8 wurde die Möglichkeit eingeführt, die Felder zu begrenzen, die in den JSON-Rückgabe-Objekten enthalten sind. Mit 5.3 gibt es nun weitere Filtermöglichkeiten. Und zwar (ganz genial) mit so genannten Nested-Fields. So was kann man dann an die URL anhängen: `/wp/v2/posts?_fields=meta.meta-key-1,meta.meta-key-2,meta.meta-key-3.nested-prop


Ich nutze die WP-CLI ja super gerne. WebDevStudios hat einen Blogpost darüber geschrieben, wie man seine eigenen CLI-Kommandos baut (en).


Mit Anheben der PHP-Version halten viele coole Dinge Einzug in WordPress. So auch der Spread-Operator, den man schon aus JavaScript kennt: ...$args. Geilo! Jede Menge Klassen und Funktionen sind betroffen. Die sind hier gelistet (en).


Wer „Gutenberg“ noch nicht verstanden hat, für den gibt’s neuen Lesestoff im Design-Handbuch. Nun wird erklärt, was Komponenten sind und wie man sie nutzt und editiert (en).


Ende November wird auch eine neue Version von PHP erwartet. Nämlich 7.4. WordPress 5.3 wird damit voll kompatibel sein. Welche Änderungen wichtig sind, hat Jonathan Desrosiers zusammengefasst (en). Interessant ist, dass der PHPCompatibility Checker nun in den WordPress-Kern integriert wurde, um Kompatibilitätsprobleme besser erkennen zu können.


StorybookJS wird wahrscheinlich in WordPress integriert werden (en).


Nonces sind Nummern, die nur einmal genutzt werden („Number used once“). In WordPress ist das aber nicht immer der Fall, wie man auf ttmm.io lesen kann (en). Während WordPress Nonces unter bestimmten Umständen als nützliche CSRF-Tokens dienen können, sind sie beim eigentlichen Schutz vor Replay-Angriffen im WordPress-Adminbereich unnütz, meint der Autor.


Der HTML-Code der durch wp_die() ausgegeben wird, wird sich in Version 5.3 verändern. In der vorherigen Version war es nicht möglich, valides HTML zu erzeugen, wenn man mit eigenen HTML-Tags (z.B. einem <h1>) arbeitete (en).


Wer HTML5 in seinen Themes nutzt, kann ab Version 5.3 folgende Argumente übergeben, um zu vermeiden, dass der type="text/javascript"-Parameter an <script> und <style>-Tags angehängt werden:

add_theme_support( 'html5', array( 'script', 'style' ) );

Wenn die SAVEQUERIES-Konstante auf true gesetzt wird, liefert die globale Variable $wpdb nun noch mehr Detailinformationen. Neben der eigentlichen Abfrage nun auch die Zeit für die Abfrage, eine Liste aller aufgerufenen Funktionen sowie den Unix-Timestamp, der den Start der Abfrage wiedergibt (en).


Mit add_settings_error() lassen sich nun auch warning– und info-Nachrichten ausgeben.


Die JSON-Extension ist in PHP meist bereits eingebaut. Wer eine PHP-Version ohne diese Erweiterung nutzt, kann WordPress bald nicht mehr nutzen. Ein Update ist erforderlich (en).


Auf Multisite-Ebene hat sich auch etwas getan:

  • Die Datenbank-Version wird nun in der blogmeta-Tabelle gespeichert.
  • Die PHP-Klasse WP_MS_Sites_List_Table wurde stark erweitert, um Entwicklern mehr Möglichkeiten zu geben, die Ansicht zu verändern oder zu erweitern.

Die Klasse WP_Meta_Query wurde ebenfalls erweitert (en). Damit ist es jetzt möglich, Meta-Abfragen mit folgenden Operatoren zu machen: =LIKE!=IN,NOT IN,NOT LIKE,RLIKE,REGEXP,NOT REGEXP,EXISTS, andNOT EXISTS


Phuu. Ganz schön viel diesen Monat! Es hat sich viel unter der Haube getan, nicht wahr?

Happy Blogging & Developing!

Ihr Dipl. Ing. (FH) Florian Simeth