
🔖 So aktivierst du Schlagwörter auf WordPress-Seiten
WordPress-Seiten unterstützen standardmäßig keine Schlagwörter, und das nervt, bis Sie verstehen, warum es so gelöst wurde. Eine Seite ist in WordPress technisch ein benutzerdefinierter Beitragstyp, dem die Taxonomie post_tag schlicht nicht zugewiesen ist. Die Core-Entwickler haben Schlagwörter nur für Beiträge vorgesehen und Seiten als statischen Inhalt behandelt.
In der Praxis lässt sich diese Einschränkung jedoch in fünf Minuten umgehen. Zwei Wege: eine Codezeile in functions.php oder ein Mikro-Plugin, das Sie aktivieren und deaktivieren können, ohne Ihr Theme zu bearbeiten. Nachfolgend finden Sie beide Varianten mit einer Erläuterung, was dabei unter der Haube passiert.
💡 Kurzüberblick:
Registrieren Sie die Taxonomie
post_tagfür den Beitragstyppagemit der einzelnen Funktionregister_taxonomy_for_object_typeFügen Sie die Schlagwort-Unterstützung für Archive über den Hook
pre_get_postshinzu, damit Seiten in Schlagwort-Abfrageergebnissen erscheinenDer Code funktioniert für beliebige benutzerdefinierte Beitragstypen; wiederholen Sie den Aufruf einfach mit dem gewünschten Typnamen
Alles wird in einer Minute in ein separates Plugin verpackt: Datei → Plugin-Header → Code → Aktivierung
Warum Schlagwörter für Seiten
Schlagwörter sind nicht nur eine Sidebar-Wolke. Sie sind eine Navigationsachse, die verstreute Seiten schneller zu thematischen Gruppen verknüpft als Kategorien oder Menüs.
WordPress-Seiten vermehren sich oft: Kontakte, Richtlinien, AGB, Service-Landingpages, Portfolios, Dokumentationen. Ohne Schlagwörter beruht die Verbindung zwischen ihnen allein auf manuellen Links im Text. Mit Schlagwörtern landet eine einzelne Seite „Versand" automatisch in der Gruppe „Logistik" neben der Seite „Retouren", und Besucher klicken auf das Schlagwort, um alles Verwandte zu sehen.
Für SEO sorgen Schlagwörter auf Seiten für zusätzliche interne Verlinkung und senken die Absprungrate: Nutzer verlassen die Seite nicht nach der ersten Seite, sondern tauchen in eine thematische Sammlung ein. Zudem gelangen Schlagwörter in die Sitemap und helfen Suchmaschinen, die Struktur besser zu verstehen.
Methode 1: Code in functions.php
Der direkteste Weg ist das Einfügen eines Snippets in die Datei functions.php Ihres aktiven Themes. Öffnen Sie wp-content/themes/IHR_THEME/functions.php und fügen Sie den Code vor dem schließenden ?> oder ganz am Ende der Datei ein:
1 /** 2 * Add tag support to WordPress pages. 3 * Code — in functions.php of child theme or via Code Snippets plugin. 4 */ 5 function sdstudio_add_tags_to_pages() { 6 register_taxonomy_for_object_type( 'post_tag', 'page' ); 7 } 8 add_action( 'init', 'sdstudio_add_tags_to_pages' ); 9 10 /** 11 * Include pages in tag archive queries. 12 * Without this, pages won't appear on /tag/tag-name/ 13 */ 14 function sdstudio_pages_in_tag_archives( $wp_query ) { 15 if ( $wp_query->get( 'tag' ) ) { 16 $wp_query->set( 'post_type', 'any' ); 17 } 18 } 19 add_action( 'pre_get_posts', 'sdstudio_pages_in_tag_archives' );
Hier ist, was passiert. Die Funktion register_taxonomy_for_object_type() verknüpft die bestehende Taxonomie post_tag mit dem Beitragstyp page. Dies ist eine WordPress-Core-Funktion; Dokumentation auf developer.wordpress.org. Sie erstellt keine neue Taxonomie, sondern fügt lediglich die Beziehung „Seiten → Schlagwörter" hinzu.
Der Hook pre_get_posts modifiziert die SQL-Abfrage, bevor sie ausgeführt wird. Wenn WordPress eine Schlagwort-Archivseite (/tag/name/) aufbaut, sucht es standardmäßig nur nach Beiträgen des Typs post. Die Zeile $wp_query->set( 'post_type', 'any' ) erweitert die Auswahl auf alle Typen: Seiten, Beiträge, benutzerdefinierte Typen.
Nach dem Einfügen des Codes erscheint beim Aufruf einer beliebigen Seite ein Block „Schlagwörter" in der Seitenleiste, genau wie bei normalen Beiträgen. Es funktioniert sofort; ein Cache-Leeren ist nicht nötig.
Anpassung für benutzerdefinierte Beitragstypen
Wenn Sie benutzerdefinierte Beitragstypen (CPT) wie Portfolios, Referenzen oder Produkte haben, die ebenfalls Schlagwörter benötigen, fügen Sie die gleiche Anzahl an register_taxonomy_for_object_type()-Aufrufen innerhalb Ihrer init-Funktion hinzu:
1 register_taxonomy_for_object_type( 'post_tag', 'portfolio' ); 2 register_taxonomy_for_object_type( 'post_tag', 'testimonials' );
Der CPT-Name ist das zweite Argument, derselbe, der bei der Registrierung des Typs via register_post_type() angegeben wurde. Keine zusätzlichen Änderungen an pre_get_posts nötig: 'any' schließt bereits alle registrierten Typen ein.
Methode 2: ein separates Plugin
functions.php direkt zu bearbeiten ist eine funktionierende Lösung, aber fragil. Wechseln Sie das Theme, verschwindet der Code und nimmt die Schlagwörter für Seiten mit. Für alle, die mehrere Websites betreuen oder häufig das Theme wechseln, ist es verlässlicher, das Snippet in ein separates Plugin auszulagern.
Erstellen Sie die Datei wp-content/plugins/sdstudio-tags-for-pages.php mit diesem Inhalt:
1 <?php 2 /** 3 * Plugin Name: Tags for Pages 4 * Description: Enables post tags on WordPress pages and custom post types 5 * Version: 1.0 6 * Author: SDStudio 7 * License: GPL-2.0+ 8 */ 9 10 // Direct access — forbidden 11 if ( ! defined( 'ABSPATH' ) ) { 12 exit; 13 } 14 15 // Tags → pages 16 function sdstudio_tags_for_pages() { 17 register_taxonomy_for_object_type( 'post_tag', 'page' ); 18 } 19 add_action( 'init', 'sdstudio_tags_for_pages' ); 20 21 // Pages → tag archive 22 function sdstudio_pages_in_tag_queries( $wp_query ) { 23 if ( ! is_admin() && $wp_query->is_main_query() && $wp_query->get( 'tag' ) ) { 24 $wp_query->set( 'post_type', 'any' ); 25 } 26 } 27 add_action( 'pre_get_posts', 'sdstudio_pages_in_tag_queries' );
Der Unterschied zur ersten Methode ist die Prüfung ! is_admin() && $wp_query->is_main_query(). Sie stellt sicher, dass Admin-Abfragen nicht beeinträchtigt werden: pre_get_posts feuert überall, auch in der Seitenliste im Dashboard, und ohne diese Prüfung kann es beim Filtern zu unerwartetem Verhalten im Admin kommen.
Die Datei ist fertig; gehen Sie zu Plugins, suchen Sie „Tags for Pages" und aktivieren Sie es. Das war's. Wenn Sie das Theme wechseln, bleibt das Plugin aktiv und die Schlagwörter verschwinden nicht. Im Multisite-Betrieb kann das Plugin pro Site aktiviert oder netzwerkweit für das gesamte Netzwerk freigeschaltet werden.
Methode 3: fertige Plugins aus dem Verzeichnis
Wenn Sie keinen Code schreiben möchten, erledigen fertige Lösungen von WordPress.org die Aufgabe. Sie fügen nicht nur Schlagwörter, sondern auch Kategorien für Seiten hinzu, plus eine Verwaltungsoberfläche.
Add Categories to Pages ist ein schlankes Plugin, das sowohl Kategorien als auch Schlagwörter für Seiten mit einer einzigen Checkbox aktiviert. Keine Einstellungen, keine Werbung. Geeignet, wenn es einfach funktionieren soll, ohne zusätzliche Bildschirme.
Hier eine Videodemonstration zum Hinzufügen von Schlagwörtern zu Seiten per Code und per Plugin, 4 Minuten, alle Schritte in Echtzeit gezeigt:
Entscheidender Punkt: Drittanbieter-Plugins bringen zusätzlichen Code und Hooks mit. Wenn Ihre Website bereits mit einem Dutzend Plugins beladen ist, ist ein weiteres ein weiterer potenzieller Fehlerpunkt. Der Code aus Methode 1 und 2 wiegt nur wenige Bytes und fügt keine Datenbankabfragen über die standardmäßigen hinaus hinzu.
⁉️🤔 Häufig gestellte Fragen
Funktioniert das im Multisite-Betrieb? Ja, der Code ist universell. Sie können das Plugin pro Site aktivieren oder netzwerkweit über „Netzwerk aktivieren" freischalten.
Im WordPress-Multisite-Betrieb funktioniert der Code auf allen Sites im Netzwerk identisch. Die Funktion
register_taxonomy_for_object_type()ist an die Taxonomiepost_taggebunden, die auf jeder Site im Netzwerk separat existiert, sodass sich Schlagwörter zwischen den Sites nicht überschneiden. Für jede Kind-Site werden Schlagwörter für Seiten unabhängig aktiviert: Aktivieren Sie das Plugin auf einer Site, erscheinen die Schlagwörter nur dort.
Muss ich nach dem Einfügen des Codes die Permalinks aktualisieren? Nein, die URL-Struktur ändert sich nicht. Schlagwörter für Seiten fügen keine neuen Rewrite-Regeln hinzu.
WordPress speichert die Beziehung „Seite, Schlagwort" in der Tabelle
wp_term_relationships, derselben, die auch für Beiträge genutzt wird. Keine Rewrite-Regeln sind betroffen: Das Schlagwort-Archiv existiert bereits (/tag/name/), und pre_get_posts bezieht Seiten lediglich in dessen Abfrage ein. Permalinks müssen nicht angefasst werden; alles funktioniert sofort nach Aktivierung des Codes.
Verschwinden die Schlagwörter beim Theme-Wechsel? Das hängt von der Methode ab. Code in der functions.php des Themes führt dazu, dass sie verschwinden. Code in einem Plugin oder Code Snippets erhält sie.
Beim Theme-Wechsel lädt WordPress eine neue
functions.php, daher wird das Snippet des alten Themes nicht mehr ausgeführt und die Schlagwort-Metabox auf Seiten verschwindet. Die Beziehungen „Seite, Schlagwort" in der Datenbank werden dadurch jedoch nicht gelöscht. Stellen Sie den Code einfach wieder her (im neuen Theme oder per Plugin), und alle zuvor zugewiesenen Schlagwörter erscheinen wieder im Admin.
Kann ich Schlagwörter beim Import von Seiten programmatisch zuweisen? Ja, via wp_set_object_terms( $page_id, array( 'tag1', 'tag2' ), 'post_tag' ).
Die Funktion
wp_set_object_terms()akzeptiert eine Seiten-ID, ein Array mit Schlagwortnamen und den Taxonomie-Namen. Existiert ein Schlagwort mit diesem Namen noch nicht, erstellt WordPress es automatisch. Das ist praktisch bei der Migration: Ein Skript durchläuft alle Seiten und weist Schlagwörter aus einer CSV-Datei oder einem alten CMS zu. Wichtig ist, das Skript nachinitauszuführen, da die Taxonomie sonst noch nicht registriert ist.
Was ist mit der Schlagwort-Wolke: Erscheinen Seiten darin? Ja, das Standard-Widget „Schlagwort-Wolke" erfasst Schlagwörter von Seiten ohne zusätzliche Konfiguration.
Das Widget
wp_tag_cloud()sammelt standardmäßig alle Objekte der Taxonomiepost_tag, unabhängig vom Beitragstyp. Sobald eine Seite mindestens ein Schlagwort hat, geht sie gleichberechtigt mit Beitrags-Schlagwörtern in die Wolke ein. Auch die Häufigkeit wird korrekt berechnet: Ein Schlagwort auf drei Seiten und zwei Beiträgen ergibt ein Gewicht von „5" und wird größer dargestellt.
Was wählen: Code oder Plugin
Die konkrete Wahl hängt von Ihrem Szenario ab, nicht von einer „richtigen Antwort".
Betreibern einer einzelnen Site, die jahrelang das Theme nicht wechseln, genügt ein Snippet in functions.php: kopieren, einfügen, fertig. Freelancer mit einem Dutzend Kunden-Sites finden ein Plugin praktischer: die ZIP-Datei an den Kunden senden oder in Sekunden auf einem neuen Projekt aktivieren. Wer bereits Code Snippets oder WPCodeBox nutzt, kann das Snippet einfach seiner Sammlung hinzufügen; es geht bei Theme-Updates nicht verloren und erfordert kein separates Plugin.
Wenn Sie mehr als Schlagwörter benötigen (Kategorien, benutzerdefinierte Taxonomien, erweiterte Filterung), sehen Sie sich fertige Plugins von WordPress.org an. Für die Aufgabe „Schlagwörter für Seiten aktivieren" genügen jedoch sieben Codezeilen. Alles andere ist Overkill.
Richten Sie als Nächstes Ihre Schlagwort-Struktur ein: Denken Sie 5-7 Schlüsselthemen für Seiten durch und weisen Sie sie zu. In einem Monat zeigt die Schlagwort-Wolke, welche Themen Ihrer Site am stärksten vernetzt sind.



