Autoren von WordPress-Plugins sollten es vermeiden, Benutzer bei der Benennung von Blöcken zu verwirren
Veröffentlicht: 2020-09-04Am 4. Mai nahm das StudioPress-Entwicklungsteam eine kleine, aber bedeutende benutzerorientierte Änderung an seinem Atomic Blocks-Plugin (jetzt in Genesis Blocks umbenannt) vor. Es entfernte das „AB“-Branding von seinen Blocktiteln. Dieses kleine Update änderte Blocktitel wie AB Accordion und AB Button in Accordion bzw. Button. Oberflächlich betrachtet schien diese Änderung für die Entwickler des Projekts wahrscheinlich von geringer Bedeutung zu sein. Für mindestens einen Benutzer bedeutete dies jedoch eine enorme Arbeitsbelastung.
Wenn die Benutzer die GitHub-Code-Commits nicht religiös befolgt hätten, hätten sie dieses Update verpasst. Gestapelt mit mehreren anderen Codeänderungen für ein scheinbar nicht zusammenhängendes Ticket hinterließ das Team eine Nachricht, die lautete: „Entferne unnötiges ‚AB‘ aus Blocktiteln.“
Die Änderung schaffte es in die Version 2.8.2 des Plugins, die einen Tag später gestartet wurde.
Das Problem war, dass es keine Meldung im Änderungsprotokoll gab, die dies vermerkte. Benutzer hatten keinen Hinweis darauf, dass die Blöcke aus dem Plugin umbenannt wurden. Normalerweise wäre dies keine große Sache, da das Plugin-Team lediglich das Präfix „AB“ aus den ansonsten unveränderten Titeln entfernt hatte. Was passiert jedoch, wenn einer dieser Blocktitel mit einem Kernblocktitel übereinstimmt?
Das war das Problem, auf das Marcus Tibesar stieß. Aus dem AB-Button-Block wurde plötzlich der Button-Block. Da er dachte, dass er den zentralen WordPress-Button verwendet, machte er auf seiner gesamten Website großzügigen Gebrauch davon. Mit seiner Entscheidung, das Plugin fallen zu lassen, nachdem StudioPress sein Plugin in Genesis Blocks umbenannt hatte, wurde es zu einer kleinen Katastrophe, es aufzuräumen.
„Ich benutze den Button-Block jetzt seit Monaten, nur um festzustellen, dass ich tatsächlich den Atomic Blocks-Button-Block verwende!“ schrieb Tibesar in einem Kommentar zum Rebranding-Post von Atomic Blocks.
Theoretisch hätte er nur alle verbleibenden Blöcke von Atomic Blocks aktualisieren müssen, die er wissentlich verwendet hatte. Aber er steckte mit Blöcken fest, die er ohne eigenes Verschulden unwissentlich zu seinen Beiträgen und Seiten hinzugefügt hatte.
Dieses spezielle Szenario wurde noch verschlimmert, weil WordPress 5.4, das am 31. März veröffentlicht wurde, einen neuen Buttons (Plural)-Block einführte. Der alte Single-Button-Block wurde aus dem normalen Inserter entfernt. Obwohl nicht alle Probleme mit der Benennung von Blöcken so kompliziert sind, stellt sich dennoch die Frage: Wie können Plugin-Autoren vermeiden, dass diese Art von Problemen mit der Benutzererfahrung verursacht wird?
Es ist leicht, StudioPress die Schuld zuzuschieben – und das Team könnte vielleicht eine Schelte gebrauchen, weil es sich über die Änderung nicht im Klaren war, als sie stattfand. Dies bringt jedoch ein paar Dinge hervor, die die größere WordPress-Community herausfinden muss. Die erste Frage ist, ob Plugin-Autoren ein konsistentes Namensschema mit Präfixen für ihre Blöcke verwenden müssen. Die zweite ist, was WordPress tun kann, um Probleme zu mindern.
Stellen Sie allen Dingen ein Präfix voran

Das ist das gängige Sprichwort in der WordPress-Entwicklungswelt, oder ? Präfix- und Namespace-Richtlinien gelten im Allgemeinen für den eigentlichen Code, wo Konflikte entstehen. Es gibt jedoch Zeiten, in denen das Präfixieren von öffentlich zugänglichem Text gerechtfertigt ist.
Und in diesen Zeiten nutzen Plugins einen gemeinsam genutzten Bereich.

Der Blockeditor ist ein solcher gemeinsam genutzter Bereich. Da immer mehr Block-Plugins im Verzeichnis landen, ist es an der Zeit, dass Plugin-Autoren darüber nachdenken, wie sich Block-Benennungsschemata auf Endbenutzer auswirken. Das Problem ist sicherlich nicht auf Atomic/Genesis Blocks beschränkt. Dies war ein anhaltender Trend bei mehreren Blockbibliotheks-Plugins. Einige sind besser als andere, aber jedes Mal, wenn ein Benutzer ein solches Plugin installiert, ist es ein Problem.
Der einfachste Weg für Plugin-Autoren besteht darin, allen benutzerdefinierten Blöcken einfach das Branding ihres Unternehmens voranzustellen (z. B. AB-Button). Andererseits teilt nicht jeder Block einen Titel mit einem der Kernblöcke. Beispielsweise muss sich ein Block mit dem Titel Produktkarussell möglicherweise nicht weiter von anderen Blöcken unterscheiden. Es ist unwahrscheinlich, dass Endbenutzer mehrere E-Commerce-Plugins mit Blöcken mit demselben Titel ausführen.
„Alle, wiederhole alle, sollten ein Präfix haben“, sagte Tibesar. „Die Präfixe beseitigen jegliche Verwirrung darüber, ob wir Benutzer einen Kernblock oder einen Block eines Drittanbieters auswählen. Die beliebtesten Plugins erscheinen ganz oben in der Liste, und es ist verwirrend, woher sie kommen, wenn Präfixe fehlen.“
Blöcke von Drittanbietern sollten zumindest ein Präfix haben, wenn ihre Titel mit einem der Kernblöcke übereinstimmen. Endbenutzer sollten beispielsweise nicht zwei verschiedene Cover-Blöcke im Blockinserter sehen. Stattdessen sollten sie das Kerncover und einen zweiten Block mit eindeutigem Titel sehen. Das Präfixieren ist eine einfache Möglichkeit, dies zu tun. Aber ich könnte mit allem leben, was die Benutzer nicht verwirrt.
Lokalisieren von Instanzen der Blocknutzung

Ende 2019 veröffentlichte das Gutenberg-Team den ersten Prototyp eines potenziellen Blockverwaltungsbereichs für den WordPress-Admin. Der Bildschirm „Blocks verwalten“ des Prototyps zeigte einen Bereich, in dem Benutzer jeden Block auf ihrer Website verwalten konnten. Eine der wichtigeren Informationen auf diesem Bildschirm war die Anzahl der „Instanzen“, die anzeigte, wie oft ein Block verwendet wurde. Es war außerdem mit einem Bildschirm mit jedem Beitrag verbunden, der einen bestimmten Block hatte.
Einer der Gründe, warum diese Funktion wichtig ist, ist, dass sie es Endbenutzern ermöglichen würde, Posts zu finden, die sie möglicherweise bereinigen möchten. Am Beispiel des Atomic/Genesis Button-Blocks konnte Tibesar all diese alten Verwendungen aufspüren und alle gewünschten Änderungen vornehmen.
Er sagte, er würde diese Funktion in WordPress absolut begrüßen. „Neue Benutzer sind versucht, Millionen von Block-Plugins hochzuladen, um sie später zu vergessen. Außerdem würden Betreuer dieses Tool verwenden, wenn sie defekte Sites bereinigen. Allein die Möglichkeit, einen Überblick darüber zu erhalten, welche Blöcke wo verwendet wurden, ermöglicht es Publishern, die Anzahl der auf ihren Websites installierten Block-Plugins zurückzurufen, insbesondere wenn neue Plugins und Technologien auftauchen.“
Da diese Funktion noch nicht im Kern enthalten ist, musste er sich dem Find My Blocks-Plugin zuwenden, das ihm half, 22 Posts und Seiten zu identifizieren, auf denen er unwissentlich den Button-Block von Atomic/Genesis Blocks verwendet hatte. Langfristig muss dies direkt in WordPress gehandhabt werden. Es ist unwahrscheinlich, dass ein Benutzer das letzte Mal sein Haus aufräumen und alte Blöcke loswerden muss.
