Tags über mehrere WordPress-Blöcke zentral verwalten

Mehrere individuelle Gutenberg-Blöcke benötigen dieselbe redaktionell gepflegte Tag-Auswahl. Eine zentrale REST-Schnittstelle speichert die Begriffe, stellt sie den Blöcken bereit und bündelt ihre Verwaltung im WordPress-Backend.

3 Min. von Matthias Ulrich

Die inhaltliche Gliederung nach Bereichen, Standorten oder Zielgruppen bestimmt, welche Begriffe für die redaktionelle Zuordnung benötigt werden. Tags machen diese Struktur für Personenkarten, Links und andere filterbare Elemente nutzbar. Ein zentral gepflegter Tag-Bestand sorgt dafür, dass alle Gutenberg-Blöcke dieselben Begriffe verwenden.

Für diese Aufgabe haben wir die UD Shared API entwickelt. Das WordPress-Plugin verbindet die Tag-Felder und Filter mehrerer Gutenberg-Blöcke mit einer gemeinsamen Datenquelle.

Ein zentraler Tag-Bestand versorgt Personen-, Dokument- und Übersichtsblöcke mit derselben Auswahl.
Die Shared API stellt verschiedenen Gutenberg-Blöcken denselben zentral gepflegten Tag-Bestand bereit.

Tags über einen gemeinsamen REST-Endpunkt bereitstellen

Die Shared API speichert die globalen Tags als WordPress-Option. Gutenberg-Blöcke rufen diesen Bestand über den REST-Endpunkt /wp-json/ud-shared/v1/tags ab. Der Endpunkt übernimmt zwei Aufgaben:

ZugriffAufgabeBerechtigung
GETVerfügbare Tags abrufenÖffentlich lesbar
POSTNeuen Tag ergänzenBenutzerinnen und Benutzer mit der Berechtigung edit_posts
WordPress-BackendVerfügbare Tags verwaltenAdministratorinnen und Administratoren

Eine GET-Anfrage an den gemeinsamen Endpunkt liefert den aktuell gespeicherten Tag-Bestand als JSON-Array:

GET /wp-json/ud-shared/v1/tags

Die Schnittstelle liefert den aktuell gepflegten Bestand als JSON-Array. Eine beispielhafte Antwort sieht so aus:

[
  "WordPress",
  "Redaktion",
  "Automatisierung"
]

Tags in der Inhaltsverwaltung verwenden

Beim Bearbeiten eines Inhalts lädt das Tag-Feld die zentral gespeicherten Begriffe. Die Redaktion wählt einen vorhandenen Tag oder ergänzt einen neuen. Auf einer zentralen Verwaltungsseite versieht sie beispielsweise Dokumente und Links mit einem Tag wie «Mathematik». Ein Gutenberg-Block kann anschliessend alle Einträge mit diesem Tag abrufen und auf der Website ausgeben.

Einen neuen Tag ergänzen

Gibt die Redaktion im Block-Editor einen neuen Tag ein, sendet der Block den Begriff mit einer POST-Anfrage an die Shared API:

POST /wp-json/ud-shared/v1/tags
Content-Type: application/json

{
  "name": "Inhaltsverwaltung"
}

Die Antwort enthält den aktualisierten Tag-Bestand:

[
  "WordPress",
  "Redaktion",
  "Automatisierung",
  "Inhaltsverwaltung"
]

WordPress bereinigt die Eingabe und speichert jeden Begriff genau einmal im gemeinsamen Bestand. Anschliessend gibt die Schnittstelle den aktualisierten Tag-Bestand an den Block-Editor zurück.

Eine zentrale WordPress-Verwaltung steuert sichtbare, ausgeblendete und entfernte Tags sowie den geschützten Schreibzugriff.
Die zentrale Verwaltung bündelt Verfügbarkeit, Ausblenden, Löschen und den berechtigungsgesteuerten Schreibzugriff.

Tags zentral pflegen und bereitstellen

Unter «Werkzeuge → Shared Tags» stellt das Plugin eine eigene Verwaltungsseite bereit. Dort legt die Redaktion fest, welche Tags über die Schnittstelle verfügbar sind. Einzelne Tags lassen sich vorübergehend ausblenden oder dauerhaft löschen.

Die GET-Antwort enthält jeweils den aktuellen Tag-Bestand. Alle Gutenberg-Blöcke, die diese Schnittstelle abfragen, erhalten dadurch dieselbe Auswahl.

Neue Tags können Benutzerinnen und Benutzer ergänzen, deren WordPress-Rolle das Bearbeiten von Beiträgen erlaubt. Bei jeder POST-Anfrage prüft die Schnittstelle dafür die Berechtigung edit_posts.

Ergebnis

Tags einmal pflegen, in mehreren Blöcken verwenden

Die UD Shared API speichert globale Tags zentral in WordPress. Mehrere Gutenberg-Blöcke greifen über denselben REST-Endpunkt auf den gemeinsamen Bestand zu und können neue Begriffe im Editor ergänzen.

Tags zentral verwalten

Auf der Verwaltungsseite legt die Redaktion fest, welche Tags verfügbar sind. Änderungen erscheinen unmittelbar in der gemeinsamen Auswahl.

Tags im Editor ergänzen

Die Redaktion ergänzt neue Begriffe direkt im Block-Editor. Die Shared API bereinigt die Eingabe und speichert jeden Tag genau einmal.

Schreibzugriff steuern

Bei jeder POST-Anfrage prüft WordPress die Berechtigung edit_posts. Der Schreibzugriff richtet sich dadurch nach den vorhandenen Benutzerrollen.