Der folgende Beitrag ist ein Gastbeitrag von Thomas McGee (@ThomasEMcGee) von Writely Designed. Thomas hat festgestellt, dass die Möglichkeit, Eltern-/Kind-Tags in WordPress zu haben, nützlich sein kann. Wenn Sie dies jedoch tun möchten, müssen Sie etwas Arbeit investieren, da WordPress dies nicht standardmäßig anbietet.
WordPress-Tags sind entscheidend für die Organisationsmethodik der Plattform. Einige Websites kommen mit der ausschließlichen Verwendung von Kategorien aus, aber für die meisten sind Kategorien und Tags wie Butter und Brot – ein untrennbares Team, das hilft, Inhalte überschaubar, ordentlich und für Leser leicht auffindbar zu machen.
Ob Sie ein WordPress-Neuling oder ein erfahrener Profi sind, wahrscheinlich haben Sie den Unterschied zwischen den beiden WordPress-Organisationstools bereits erlebt. Kategorien sind „hierarchisch“, was bedeutet, dass sie übergeordnete Elemente und Unterelemente enthalten können. Außerdem pflegen Kategorien eine laufende Checkbox-Liste aller Kategorien, die Sie zuvor erstellt und verwendet haben.
Tags hingegen sind „flach“ und enthalten keine über- oder untergeordneten Elemente – alles ist sozusagen auf derselben „Ebene“. Anstelle des für die Kategorie verfügbaren „Checklisten“-Formats zeigen Tags ein einfaches Textfeld an, in das Sie durch Kommas getrennte Elemente eingeben können. Ähnlich wie bei Kategorien können Sie „am häufigsten verwendete Tags“ im Format einer „Tag-Wolke“ anzeigen. Das Problem dabei ist, wenn Sie fein abgestimmte Kontrolle über die Organisation Ihrer Tags haben möchten, dass dies im Handumdrehen unübersichtlich werden kann.
Kategorien werden typischerweise für breite oder allgemeine Themen verwendet, während Tags etwas spezifischer werden. Wenn wir das Beispiel einer Nachrichten-Website verwenden würden, könnte sie eine Kategorie für „Technologie“ und einen Tag für etwas wie „Apple“ verwenden.
Abgesehen von Erklärungen werde ich in diesem Artikel untersuchen, wie (und warum) man standardmäßige „flache“ WordPress-Tags in ein hierarchisches, kategorienähnliches Format konvertiert.
Warum möchten Sie „hierarchische“ Tags haben?
„Ich habe bereits Kategorien, die wie Kategorien funktionieren, warum sollte ich wollen, dass meine Tags ebenfalls wie Kategorien funktionieren?“
Ich hätte die gleiche Frage gestellt, wenn ich es nicht selbst bei einem der WordPress-Themes ausprobiert hätte, die ich gerade erstellte. In der Zeit, in der ich das Konzept ausprobiert habe, habe ich jedoch nur Vorteile gefunden. Vorteile, wenn Organisation und Wartbarkeit für die WordPress-Struktur Ihres (oder Ihres Benutzers) wichtig sind.
Eine der nützlichen Eigenschaften von Tags ist, dass sie ein separates Mittel von Kategorien zur Organisation von Inhalten sind. Wie ich oben bereits erwähnt habe, eignen sich Kategorien hervorragend für die allgemeinsten Inhalte und Tags für das Spezifische.
Während Tags hervorragend geeignet sind, um schnell relevante Themen für den Artikel aufzuzählen, ist es einfach, dass Tags unübersichtlich, unordentlich und inkonsistent werden. Multiplizieren Sie dies mit zehn oder hundert, wenn Sie eine große Vielfalt von Mitwirkenden haben, die selbst Tags hinzufügen können.
Eine Hilfe bei dem Problem ist, Tags in ein hierarchisches Format zu konvertieren. Die Methodik bleibt dieselbe; das heißt, Kategorien bleiben bei allgemeinen Themen und Tags spezifisch, aber mit dem zusätzlichen Vorteil von mehr Struktur für die Pflege von Tags.
„Aber ich mag es, Tags einfach nacheinander eingeben zu können.“
Obwohl eine hierarchische Tag-Meta-Box Ihnen nicht erlaubt, die normale, durch Kommas getrennte Eingabemethode zu verwenden, können Sie dennoch Titel in schneller Folge eingeben. Dies ist möglich, weil WordPress intelligent genug ist, zu erkennen, wann eine Kategorie (oder in unserem Fall ein Tag) bereits existiert, und diesen Eintrag auswählt, anstatt eine Duplikat zu erstellen. Das Ergebnis ist die Möglichkeit, dass Sie oder Ihr Benutzer Tags nacheinander eingeben oder die Kontrollkästchen anklicken, um die relevanten Tags dem Beitrag zuzuordnen.

Es gibt jedoch eine Einschränkung bei diesem Ansatz. Damit die Elemente beim Eingeben „ausgewählt“ werden, müssen es übergeordnete Tags und keine untergeordneten Tags sein. Wenn Sie einen Namen für einen untergeordneten Tag eingeben, wird er einfach als neuer übergeordneter Tag erstellt.
„Ich habe bereits eine Menge Tags auf meiner WordPress-Website, wird das nicht die Permalinks zerstören?“
Wenn diese Methode richtig implementiert ist, nein. Einer der schönen Aspekte dieses Konzepts ist, dass Sie es eine Weile ausprobieren und dann zum alten Stil von Tags zurückkehren können, ohne bisherige Tag-Strukturen zu verlieren. Wenn Sie sich entscheiden, ein paar Mal hin und her zu wechseln, ist es möglich, dass Sie einige hierarchische Daten verlieren, aber das ist ein unwahrscheinliches Szenario.

Wie bereits erwähnt, ist der größte Vorteil der Hierarchisierung Ihrer Tags die zusätzliche organisatorische Kontrolle innerhalb des Admin-Bereichs. Was die Navigation und Nutzung von getaggten Artikeln auf der Frontend-Seite betrifft, wird es keinen sichtbaren Unterschied geben.
Auf der Backend-Seite können Sie jedoch damit beginnen, eine verständliche, lesbare und verwaltbare Bibliothek von Tags aufzubauen. Dies ist für Ihre eigene Nutzung äußerst hilfreich und noch mehr, wenn Sie eine Website betreiben, die Gastbeiträge akzeptiert. Dieses strukturierte System ist eine enorme Hilfe bei der Vermeidung redundanter Tags. Wenn Sie jemals Ihre aktiven Tags durchscrollen und Einträge wie „responsiv“, „Responsive Design“, „RWD“, „responsive Webdesign“ und so weiter sehen, wissen Sie genau, was ich meine. Mit dem hierarchischen Tag-Ansatz könnten Sie einen übergeordneten Tag „Techniken“ mit einem untergeordneten Tag „Responsive Webdesign“ erstellen und Autoren wüssten immer, wo sie suchen müssen, wenn sie über dieses spezielle Thema schreiben.
Wenn Sie mit dem Ansatz von Evernote zur Organisation von Tags vertraut sind, werden Sie feststellen, dass die Methodik von hierarchischen Tags dieser Idee sehr stark folgt.

Der Vorteil, den dies Evernote-Benutzern bietet, ist die Möglichkeit, eine endlose Bibliothek von Themen zu erstellen, die einem logischen Muster folgen. Dies hilft, Elemente beim Scannen oder Durchsuchen leichter zu finden, während die Möglichkeit erhalten bleibt, nach einem bestimmten Tag zu suchen.
So konvertieren Sie die integrierten flachen Tags von WordPress in das hierarchische Äquivalent
Wenn Sie von der Idee hierarchischer Tags überzeugt sind oder sie einfach ausprobieren möchten, besteht die Methode zur Änderung darin, die integrierten Tags von WordPress durch eine angepasste Version von Ihrer eigenen zu überschreiben.
Der erste Schritt besteht darin, die Rewrite-Regeln der Taxonomie beizubehalten, um zu verhindern, dass Permalinks gestört werden.
// Maintain the built-in rewrite functionality of WordPress tags
global $wp_rewrite;
$rewrite = array(
'hierarchical' => false, // Maintains tag permalink structure
'slug' => get_option('tag_base') ? get_option('tag_base') : 'tag',
'with_front' => ! get_option('tag_base') || $wp_rewrite->using_index_permalinks(),
'ep_mask' => EP_TAGS,
);
Als Nächstes müssen wir die für die Taxonomie angezeigten Labels festlegen. In diesem Fall behalten wir den ursprünglichen Namen des Tags bei.
// Redefine tag labels (or leave them the same)
$labels = array(
'name' => _x( 'Tags', 'Taxonomy General Name', 'hierarchical_tags' ),
'singular_name' => _x( 'Tag', 'Taxonomy Singular Name', 'hierarchical_tags' ),
'menu_name' => __( 'Taxonomy', 'hierarchical_tags' ),
'all_items' => __( 'All Tags', 'hierarchical_tags' ),
'parent_item' => __( 'Parent Tag', 'hierarchical_tags' ),
'parent_item_colon' => __( 'Parent Tag:', 'hierarchical_tags' ),
'new_item_name' => __( 'New Tag Name', 'hierarchical_tags' ),
'add_new_item' => __( 'Add New Tag', 'hierarchical_tags' ),
'edit_item' => __( 'Edit Tag', 'hierarchical_tags' ),
'update_item' => __( 'Update Tag', 'hierarchical_tags' ),
'view_item' => __( 'View Tag', 'hierarchical_tags' ),
'separate_items_with_commas' => __( 'Separate tags with commas', 'hierarchical_tags' ),
'add_or_remove_items' => __( 'Add or remove tags', 'hierarchical_tags' ),
'choose_from_most_used' => __( 'Choose from the most used', 'hierarchical_tags' ),
'popular_items' => __( 'Popular Tags', 'hierarchical_tags' ),
'search_items' => __( 'Search Tags', 'hierarchical_tags' ),
'not_found' => __( 'Not Found', 'hierarchical_tags' ),
);
Nachdem wir daran gearbeitet haben, die grundlegende Struktur des Tags beizubehalten, können wir die Taxonomie-Struktur von flach auf hierarchisch ändern.
// Override structure of built-in WordPress tags
register_taxonomy( 'post_tag', 'post', array(
'hierarchical' => true, // Was false, now set to true
'query_var' => 'tag',
'labels' => $labels,
'rewrite' => $rewrite,
'public' => true,
'show_ui' => true,
'show_admin_column' => true,
'_builtin' => true,
) );
Wenn Sie den Namen der integrierten Tags von WordPress in etwas anderes ändern möchten, können Sie dies tun, ohne Permalinks zu stören, indem Sie alles innerhalb des $labels-Arrays ändern.
// Let's change Tags to Topics
$labels = array(
'name' => _x( 'Topics', 'taxonomy general name' ),
'singular_name' => _x( 'Topic', 'taxonomy singular name' ),
'search_items' => __( 'Search Topics' ),
'all_items' => __( 'All Topics' ),
'parent_item' => __( 'Parent Topic' ),
'parent_item_colon' => __( 'Parent Topic:' ),
'edit_item' => __( 'Edit Topic' ),
'update_item' => __( 'Update Topic' ),
'add_new_item' => __( 'Add New Topic' ),
'new_item_name' => __( 'New Topic Name' ),
'not_found' => __( 'No topics found.' ),
'menu_name' => __( 'Topics' ),
);
Alles zusammenfügen
Sobald wir alle benötigten Teile zur Modifizierung der Tag-Taxonomie erstellt haben, können wir alles mit einer Funktion, die an den init WordPress-Action-Hook gebunden ist, zusammenfügen.
Wenn Sie an einem WordPress-Theme (oder Child-Theme) arbeiten, können Sie dies einfach zu Ihrer functions.php-Datei oder einem Funktionalitäts-Plugin hinzufügen.
function wd_hierarchical_tags_register() {
// Maintain the built-in rewrite functionality of WordPress tags
global $wp_rewrite;
$rewrite = array(
'hierarchical' => false, // Maintains tag permalink structure
'slug' => get_option('tag_base') ? get_option('tag_base') : 'tag',
'with_front' => ! get_option('tag_base') || $wp_rewrite->using_index_permalinks(),
'ep_mask' => EP_TAGS,
);
// Redefine tag labels (or leave them the same)
$labels = array(
'name' => _x( 'Tags', 'Taxonomy General Name', 'hierarchical_tags' ),
'singular_name' => _x( 'Tag', 'Taxonomy Singular Name', 'hierarchical_tags' ),
'menu_name' => __( 'Taxonomy', 'hierarchical_tags' ),
'all_items' => __( 'All Tags', 'hierarchical_tags' ),
'parent_item' => __( 'Parent Tag', 'hierarchical_tags' ),
'parent_item_colon' => __( 'Parent Tag:', 'hierarchical_tags' ),
'new_item_name' => __( 'New Tag Name', 'hierarchical_tags' ),
'add_new_item' => __( 'Add New Tag', 'hierarchical_tags' ),
'edit_item' => __( 'Edit Tag', 'hierarchical_tags' ),
'update_item' => __( 'Update Tag', 'hierarchical_tags' ),
'view_item' => __( 'View Tag', 'hierarchical_tags' ),
'separate_items_with_commas' => __( 'Separate tags with commas', 'hierarchical_tags' ),
'add_or_remove_items' => __( 'Add or remove tags', 'hierarchical_tags' ),
'choose_from_most_used' => __( 'Choose from the most used', 'hierarchical_tags' ),
'popular_items' => __( 'Popular Tags', 'hierarchical_tags' ),
'search_items' => __( 'Search Tags', 'hierarchical_tags' ),
'not_found' => __( 'Not Found', 'hierarchical_tags' ),
);
// Override structure of built-in WordPress tags
register_taxonomy( 'post_tag', 'post', array(
'hierarchical' => true, // Was false, now set to true
'query_var' => 'tag',
'labels' => $labels,
'rewrite' => $rewrite,
'public' => true,
'show_ui' => true,
'show_admin_column' => true,
'_builtin' => true,
) );
}
add_action('init', 'wd_hierarchical_tags_register');
Nach der Implementierung sollten Sie die hierarchische Tag-Struktur im Admin-Bereich Ihrer Website sehen.
Fügen Sie eine neue Taxonomie zu WordPress hinzu
Nehmen wir an, Ihnen gefällt der gesamte organisatorische Ansatz der hierarchischen Tags. Die Idee, integrierte Tags zu modifizieren, funktioniert jedoch für Ihre Konfiguration einfach nicht. Eine alternative Lösung besteht darin, eine komplett neue Taxonomie zu erstellen und sie über Kategorien und Tags hinaus zu verwenden.
Nach vielen der oben genannten Konzepte könnten Sie eine hierarchische „Themen“-Taxonomie mit den von Ihnen gewählten Einstellungen hinzufügen.
// Register Custom Taxonomy
function wd_topics_taxonomy() {
$labels = array(
'name' => _x( 'Topics', 'Taxonomy General Name', 'hierarchical_tags' ),
'singular_name' => _x( 'Topic', 'Taxonomy Singular Name', 'hierarchical_tags' ),
'menu_name' => __( 'Taxonomy', 'hierarchical_tags' ),
'all_items' => __( 'All Items', 'hierarchical_tags' ),
'parent_item' => __( 'Parent Item', 'hierarchical_tags' ),
'parent_item_colon' => __( 'Parent Item:', 'hierarchical_tags' ),
'new_item_name' => __( 'New Item Name', 'hierarchical_tags' ),
'add_new_item' => __( 'Add New Item', 'hierarchical_tags' ),
'edit_item' => __( 'Edit Item', 'hierarchical_tags' ),
'update_item' => __( 'Update Item', 'hierarchical_tags' ),
'view_item' => __( 'View Item', 'hierarchical_tags' ),
'separate_items_with_commas' => __( 'Separate items with commas', 'hierarchical_tags' ),
'add_or_remove_items' => __( 'Add or remove items', 'hierarchical_tags' ),
'choose_from_most_used' => __( 'Choose from the most used', 'hierarchical_tags' ),
'popular_items' => __( 'Popular Items', 'hierarchical_tags' ),
'search_items' => __( 'Search Items', 'hierarchical_tags' ),
'not_found' => __( 'Not Found', 'hierarchical_tags' ),
);
$args = array(
'labels' => $labels,
'hierarchical' => true,
'public' => true,
'show_ui' => true,
'show_admin_column' => true,
'show_in_nav_menus' => true,
'show_tagcloud' => true,
);
register_taxonomy( 'topics', array( 'post' ), $args );
}
// Hook into the 'init' action
add_action( 'init', 'wd_topics_taxonomy', 0 );
Die größte Herausforderung bei dieser Methode besteht darin, dass Sie nach der Erstellung Ihrer neuen Taxonomie ihre Frontend-Sichtbarkeit in Ihr Theme oder Child-Theme integrieren müssen, während die meisten Themes bereits die Kompatibilität für Tags integriert haben.
Additional Resources
Wenn Sie feststellen, dass Sie die Fähigkeiten über das hier gezeigte Beispiel hinaus erweitern müssen, können diese zusätzlichen Ressourcen hilfreich sein.
- WordPress Taxonomy Generator
register_taxonomy()Funktionsreferenz- WP Rewrite Klassenreferenz
- WordPress-Taxonomie-Struktur
Fazit
WordPress bleibt wohl das leistungsfähigste, anpassungsfähigste und erweiterbarste CMS, das es gibt. Mit allem, was hier behandelt wurde, werden hoffentlich einige Ideen geweckt, wie Sie die organisatorischen Fähigkeiten von WordPress optimieren und die Plattform noch weiter voranbringen können.
Erstellen Sie eine neue Taxonomie oder verwenden Sie einfach Kategorien… Tags sind flache Eins-zu-viele-Beziehungen und sind gerade deswegen cool…
Das ist eine interessante Idee, aber ich bin mir nicht sicher, wie gut sie für eines meiner Hauptprojekte, eine Nachrichten-Website, die auf WordPress läuft, funktionieren würde. Wir haben Hunderte von Tags, daher ist das Durchscrollen einer Liste, um sie abzuhaken, zeitaufwendig, und das Eingeben hilft nicht, wenn es einen Rechtschreibfehler oder geringfügige Unterschiede gibt. „US Presidential Election 2016“ und „Presidential Election 2016“ würden, wenn sie eingegeben werden, immer noch zwei Tags zum selben Thema erstellen.
Ich bin mit einer meiner Websites in der gleichen Situation. Es ist soweit, dass ich alle meine Tags durchgehen müsste, um sie zu bereinigen (was ich vielleicht irgendwann tun werde).
Auf anderen Websites mit einem Neuanfang habe ich festgestellt, dass es tatsächlich eine ausgezeichnete Möglichkeit ist, die Dinge langfristig organisiert zu halten.
Die beste Beschreibung für den Unterschied zwischen Tags und Kategorien war, einen Vergleich mit einem Buch anzustellen.
Kategorien – Das ist es, was Sie im Inhaltsverzeichnis am Anfang des Buches erwarten würden.
Tags – Das ist es, was Sie im Index am Ende des Buches erwarten würden.
Ich weiß, dass dies nicht wirklich der Kern des Artikels ist, aber es ist etwas, das mir immer geholfen hat, den Unterschied zwischen den beiden zu vermitteln.
Ich mag diese Idee, da ich gerne einen übergeordneten Tag hätte, wie zum Beispiel: „Getreide“ und dann untergeordnete Tags, die diese Getreidesorten auflisten können, wie z. B.: Roggen, Weizen, Gerste usw.
Ich bin ziemlich sicher, dass es eine verfügbare Komponente gibt, die dies konvertieren kann, kann jemand das überprüfen?
Ich würde dies ernsthaft in Betracht ziehen, sobald ich meine Website starte und mit V2 beginne. Ich bin ein Organisations-Nerd und wenn ich für mehr Genauigkeit tiefer graben kann, werde ich es wahrscheinlich tun.
Ich denke, flache Tags funktionieren gut für kleine Websites, aber je größer die Website wird, desto wichtiger wird es, auf noch niedrigeren Ebenen stärker zu organisieren.
Das Praktische ist, dass Sie die hierarchische Funktionalität ohne Schaden entfernen können, wenn Sie sich nach dem Ausprobieren von hierarchischen Tags entscheiden, wieder zu flachen Tags zurückzukehren.