WordPress: Hierarchische Taxonomies wie Tags eingeben

WordPress bietet für Custom Taxonomies die Möglichkeit diese hierarchische anzuordnen. Das heißt, man kann für jeden Term wie bei einer Kategorie ein übergeordneten Term festlegen.

Wir nutzen bei Travel-Dealz hierarchische Taxonomies für Reiseziele. Und von diesen haben wir über 1.000 angelegt. Diese sind nach Kontinent → Land → Stadt angeordnet.

Gutenberg Taxonomy Hierarchisch
Reiseziele hierarchisch im Editor

Das führt allerdings dazu, dass Taxonomies im Editor wie Kategorien eingegeben werden und auch alle Terms beim Öffnen des Editors vom Server geladen werden müssen. Bei sehr vielen Terms kann es zum einen Performanceprobleme geben, weil im Editor alle geladen werden müssen und es ist auch schwierig schnell mehrere Terms (in diesem Fall Reiseziele) einzugeben.

Gutenberg Taxonomies Tags
Hierarchische Taxonomies wie Tags eingeben

An dieser Stelle wäre es viel praktischer, die Terms wie Tags festzulegen. Man sucht nach einem Term und es werden einem passende Vorschläge angezeigt, die man nur noch auswählen muss.

Leider bietet WordPress keine Möglichkeit direkt bei der Registrierung eines Taxonomies die Wahl der Metabox zu beeinflussen. Aber es gibt ja in WordPress für alles den passenden Filter. In diesem Fall können wir über den Filter rest_prepare_taxonomy die Rückgabe der REST API für das Taxonomie beeinflussen. Dort ändern wir einfach hierarchical in false und schon macht der Editor bzw. Gutenberg was wir wollen.

add_filter( 'rest_prepare_taxonomy', function( $response, $taxonomy ) {
	if ( in_array( $taxonomy->name, [ 'myhierarchicaltaxonomy' ] ) ) {
		$response->data['hierarchical'] = false;
	}
	return $response;
}, 10, 2 );Code-Sprache: PHP (php)

Ich nutze diesen kleinen Hack bereits seit über einem Jahr in der Praxis und konnte bisher keine großen Nachteile feststellen. Einzig, dass man aus dem Editor kein neuen Term mit Hierarchie anlegen kann, ist als Nachteil festzustellen.

3 Reaktionen zu “WordPress: Hierarchische Taxonomies wie Tags eingeben

  1. Alex sagt:

    Hallo Johannes, das ist ein sehr wertvoller Tipp, vielen Dank! Ich werde das mal für mich einem Praxistest unterziehen. In der regulären „Tag“-Metabox baut man sich ja durch Rechtschreibfehler versehentlich auch mal neue Tags. Eine Lösung dafür wäre vermutlich, das Erstellen neuer Terms im Editor unterbinden und nur die Auswahl zu erlauben. Aber auch dafür wird es wohl den passenden Filter geben 😉

    1. Johannes sagt:

      Stimmt, finde ich auch immer sehr nervig. Gutenberg fehlen da leider doch einige Filter/Actions aber falls du was findest, lass es mich wissen!

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert