Wie zeigt man einen Banner nur in einer bestimmten Kategorie an? Ein Entwickler-Guide für fortgeschrittene Bedingungen.
DE

Wie prüft man, ob ein Beitrag zu einem bestimmten Taxonomie-Term gehört?

5.00 /5 - (26 Stimmen )
Zuletzt überprüft: 1. Mai 2026
3Min. Lesezeit
Tutorial
Full-Stack-Entwickler

Eine häufige Aufgabe für Entwickler ist es, ein Element (z. B. einen Werbebanner) nur dann anzuzeigen, wenn der Beitrag zu einer bestimmten Kategorie oder Taxonomie gehört (z. B. ‘Filmgenre: Komödie’).

In WordPress haben wir dafür zwei Hauptfunktionen, die oft verwechselt werden: is_tax() und has_term(). Der Unterschied zwischen ihnen ist entscheidend für die Logik Ihres Themes.


#1. is_tax() vs has_term() – Wo liegt der Unterschied?

#is_tax() – Seiten-Kontext (Archiv)

Verwenden Sie dies, um zu prüfen, welche Seite der Benutzer gerade ansieht.

  • Befindet sich der Benutzer gerade im Archiv der Kategorie “Horror”?
if ( is_tax( 'genre', 'horror' ) ) {
    echo 'Sie befinden sich auf der Horror-Liste!';
}

Diese Funktion gibt false zurück, wenn Sie sich auf der Seite eines einzelnen Beitrags (Single Post) befinden, selbst wenn dieser Beitrag ein Horrorfilm ist!

#has_term() – Beitrags-Kontext (Single)

Verwenden Sie dies, um zu prüfen, was einem bestimmten Beitrag zugewiesen ist.

  • Ist dieser spezielle Film ein “Horrorfilm”?
if ( has_term( 'horror', 'genre' ) ) {
    echo 'Dieser Beitrag ist ein Horrorfilm.';
}

Diese Funktion wird meistens innerhalb des The Loop oder in der Datei single.php verwendet.


#2. Das Hierarchie-Problem (Eltern und Kinder)

Die größte Herausforderung ist, dass has_term() nur exakt den Term prüft, den Sie angeben.

Nehmen wir folgende Struktur an:

  • Filme (Taxonomie: movie_genre)
    • Komödien (ID: 10)
      • Romantische (ID: 11)
      • Schwarze Komödien (ID: 12)

Wenn ein Beitrag NUR “Romantische” zugewiesen ist, wird die Prüfung:

has_term( 'komoedien', 'movie_genre' ) 

FALSE zurückgeben. Warum? Weil der Beitrag technisch gesehen nicht das Häkchen bei “Komödien” hat, sondern nur bei “Romantische”.

#Lösung: Hilfsfunktion für Nachfahren

Um zu prüfen, ob ein Beitrag zur Kategorie “Komödien” ODER einer ihrer Unterkategorien gehört, müssen wir eine eigene Hilfsfunktion schreiben.

/**
 * Prüft, ob ein Beitrag zu einem Term oder dessen Kindern gehört.
 */
function wppoland_in_term_tree( $term_id_or_slug, $taxonomy, $post_id = null ) {
    $post_id = $post_id ? $post_id : get_the_ID();
    $term    = get_term_by( is_numeric($term_id_or_slug) ? 'id' : 'slug', $term_id_or_slug, $taxonomy );

    if ( ! $term ) {
        return false;
    }

    // 1. Direkte Zuweisung prüfen (am schnellsten)
    if ( has_term( $term->term_id, $taxonomy, $post_id ) ) {
        return true;
    }

    // 2. Alle Kinder des Terms abrufen
    $children = get_term_children( $term->term_id, $taxonomy );
    
    if ( is_wp_error( $children ) || empty( $children ) ) {
        return false;
    }

    // 3. Prüfen, ob der Beitrag eines der Kinder hat
    return has_term( $children, $taxonomy, $post_id );
}

#Verwendung:

// In single.php
if ( wppoland_in_term_tree( 'komoedien', 'movie_genre' ) ) {
    get_template_part( 'partials/banner-comedy' );
}

#3. Performance-Optimierung

Die Funktion get_term_children() führt eine Datenbankabfrage durch. Verwenden Sie sie in einem Loop mit 50 Beiträgen, machen Sie 50 zusätzliche SQL-Abfragen.

Eine wichtige Optimierung ist die Übergabe der ID anstelle des Slugs. WordPress muss den Slug ohnehin in eine ID umwandeln, also spart die direkte Angabe der ID (z. B. 10) eine Abfrage.

// Schneller (ID)
has_term( 10, 'movie_genre' );

// Langsamer (Slug -> erfordert Lookup)
has_term( 'komoedien', 'movie_genre' );

#Zusammenfassung

  1. Verwenden Sie is_tax() nur, um zu prüfen, ob Sie sich auf einer Archivseite befinden.
  2. Verwenden Sie has_term() für die logische Prüfung einzelner Beiträge.
  3. Denken Sie daran, dass has_term nicht vererbt – wenn Sie “Kategorie und Kinder” brauchen, nutzen Sie eine Custom Helper Function.

Entdecken Sie unsere professionelle WordPress-Entwicklung um Ihr Projekt voranzubringen.

Nächster Schritt

Machen Sie aus dem Artikel eine echte Umsetzung

Dieser Block stärkt die interne Verlinkung und führt Nutzer gezielt zum nächsten sinnvollen Schritt im Service- und Content-System.

Soll das Thema auf Ihrer Website umgesetzt werden?

Wenn Sie aus dem Artikel konkrete Maßnahmen für Website, Relaunch oder Weiterentwicklung ableiten wollen, definiere ich den Scope und setze ihn um.

Relevanter Cluster

Weitere WordPress-Dienste und Wissensbasis entdecken

Stärken Sie Ihr Unternehmen mit professionellem technischen Support in den Kernbereichen des WordPress-Ökosystems.

Was ist Wie prüft man, ob ein Beitrag zu einem bestimmten Taxonomie-Term gehört?
Wie prüft man, ob ein Beitrag zu einem bestimmten Taxonomie-Term gehört? ist relevant, wenn Sie WordPress stabiler betreiben, die Performance verbessern und Produktionsfehler reduzieren möchten.
Wie implementiert man Wie prüft man, ob ein Beitrag zu einem bestimmten Taxonomie-Term gehört?
Starten Sie mit einem Basis-Audit, definieren Sie Umfang und Rahmenbedingungen und setzen Sie Änderungen in kleinen, testbaren Schritten um.
Warum ist Wie prüft man, ob ein Beitrag zu einem bestimmten Taxonomie-Term gehört wichtig?
Die größten Effekte entstehen meist durch technische Qualität, klare Informationsstruktur und regelmäßige Verifizierung.

Sie brauchen ein FAQ für Branche und Zielmarkt? Wir erstellen eine Version passend zu Ihren Business-Zielen.

Kontakt aufnehmen

Ähnliche Artikel

Die Funktion get_post_meta() ist grundlegend. Erfahren Sie, wie Sie benutzerdefinierte Felddaten in Ihrem Theme abrufen, anzeigen und verwalten. Fortgeschrittener Leitfaden für Entwickler.
development

Wie man benutzerdefinierte Felder in WordPress anzeigt (Guide 2026)

Die Funktion get_post_meta() ist grundlegend. Erfahren Sie, wie Sie benutzerdefinierte Felddaten in Ihrem Theme abrufen, anzeigen und verwalten. Fortgeschrittener Leitfaden für Entwickler.

WordPress Admin-Leiste für Abonnenten und Kunden ausblenden. Sauberes Frontend-Design mit einfachem PHP-Code, Plugins und fortgeschrittenen Techniken.
wordpress

Admin-Leiste für Nicht-Admins ausblenden

WordPress Admin-Leiste für Abonnenten und Kunden ausblenden. Sauberes Frontend-Design mit einfachem PHP-Code, Plugins und fortgeschrittenen Techniken.

Schluss mit unordentlichen If-Abfragen. Lernen Sie den Unterschied zwischen in_category und has_term, rekursive Kind-Kategorien und optimierte Conditional Tags.
development

WordPress-Bedingungslogik für Kategorien und Taxonomien

Schluss mit unordentlichen If-Abfragen. Lernen Sie den Unterschied zwischen in_category und has_term, rekursive Kind-Kategorien und optimierte Conditional Tags.