in_category vs has_term? Wie prüft man Eltern/Kind-Beziehungen? Ein kompletter Engineering-Guide zur Taxonomie-Logik.
DE

WordPress-Bedingungslogik für Kategorien und Taxonomien

5.00 /5 - (28 Stimmen )
Zuletzt überprüft: 1. Mai 2026
2Min. Lesezeit
Leitfaden
Full-Stack-Entwickler

Logik ist das Gehirn Ihres Themes. In 2026, trotz Full Site Editing (FSE), ist PHP-Logik nicht obsolet.

Ein häufiger Fehler ist die Verwechslung von in_category() mit has_term(). Dieser 1500-Wörter-Guide etabliert die Standard Operations Procedures (SOP) für moderne WordPress-Logik.

#Teil 1: Die Grundlagen - Kategorien prüfen

#1. in_category()

Nutzen Sie dies STRENG nur für die native “Kategorie”.

if ( in_category( 'news' ) ) {
    // News Post
}

Warnung: Prüft nicht auf Custom Taxonomies (wie ‘product_cat’ in WooCommerce).

#2. has_term() (Das Universal-Tool)

Sie sollten fast immer has_term() bevorzugen.

// Prüfe ob Post im Term 'jeans' der Taxonomie 'product_cat' ist
if ( has_term( 'jeans', 'product_cat' ) ) {
    // Jeans
}

#Teil 2: Hierarchie-Komplexität (Kind & Eltern)

Native Funktionen prüfen auf exakte Übereinstimmung. Wenn Sie in_category('obst') prüfen, der Post aber nur in apfel ist, schlägt der Test fehl.

#Die Lösung: post_is_in_descendant_category()

WordPress hat keine native rekursive Check-Funktion im Core. Sie brauchen eine Helper-Funktion.

function wppoland_post_is_in_descendant_category( $cats, $_post = null ) {
    // Helper Logik hier (siehe Code-Beispiel im Englischen/Polnischen Teil)
    // Nutzt get_term_children für Rekursion
}

#Teil 3: Conditional Tags in 2026

PHP-Bedingungen sind vital für:

  1. Assets laden: Schwere JS-Dateien nur konditional laden.
  2. Content Filter: Disclaimer nur bei bestimmten Kategorien anhängen.

#Teil 4: Performance

#Datenbank-Impact

Jeder has_term Aufruf nutzt den Object Cache. Es ist schnell (O(1)). Aber get_term_children kann bei riesigen Taxonomien teuer sein.

#Teil 5: WooCommerce Spezifika

Häufiger Fehler: Nutzung von is_product_category() innerhalb eines normalen Loops. Das funktioniert nicht. Nutzen Sie has_term( $term, 'product_cat', $post_id ).

#Zusammenfassung

  1. Nutzen Sie has_term() für Robustheit.
  2. Nutzen Sie Helper-Funktionen für Rekursive Checks.
  3. Unterscheiden Sie Seiten-Kontext (is_category()) von Post-Daten (in_category()).

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.

Artikel-FAQ

Häufig gestellte Fragen

Praktische Antworten zur Umsetzung des Themas.

SEO-ready GEO-ready AEO-ready 3 Q&A
Wann sollte ich has_term() statt in_category() verwenden?
Sobald Sie mit Custom Taxonomies arbeiten oder eine robuste Lösung für mehrere Inhaltstypen brauchen. in_category() ist nur für die native Kategorie gedacht.
Wie prüfe ich untergeordnete Kategorien korrekt?
Für Eltern-Kind-Beziehungen brauchen Sie meist eine Helper-Funktion mit get_term_children() oder eine rekursive Prüfung. Eine exakte Kategorieabfrage reicht dafür nicht.
Beeinflusst Bedingungslogik die Performance?
Einzelne has_term()-Checks sind meist unkritisch. Teurer werden rekursive Prüfungen und unnötige Abfragen in großen Loops, deshalb lohnt sich saubere Struktur und Caching.

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

Kontakt aufnehmen

Ähnliche Artikel

RSS ist nicht tot. Erfahren Sie, wie Sie WordPress-Feeds anpassen, Beitragsbilder hinzufügen, Podcasting unterstützen und JSON Feed implementieren.
development

Meisterhafte WordPress RSS-Feeds im Jahr 2026: Ein Entwickler-Leitfaden

RSS ist nicht tot. Erfahren Sie, wie Sie WordPress-Feeds anpassen, Beitragsbilder hinzufügen, Podcasting unterstützen und JSON Feed implementieren.

has_term() und is_tax() werden oft verwechselt. Sehen Sie hier den kompletten Leitfaden zur bedingten Logik für Kategorien, Tags und Custom Taxonomies.
development

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

has_term() und is_tax() werden oft verwechselt. Sehen Sie hier den kompletten Leitfaden zur bedingten Logik für Kategorien, Tags und Custom Taxonomies.

Das berühmte TimThumb-Skript ist ein Relikt und ein Sicherheitsrisiko. Lernen Sie, wie Sie Bilder mit add_image_size() und nativen WP-Funktionen richtig skalieren.
development

TimThumb ist tot! Wie man Bilder in WordPress handhabt (Guide 2026)

Das berühmte TimThumb-Skript ist ein Relikt und ein Sicherheitsrisiko. Lernen Sie, wie Sie Bilder mit add_image_size() und nativen WP-Funktionen richtig skalieren.