Child-Kategorie von bestimmter Eltern-Kategorie ausgeben (Frage an Profis)

  • Hallo,

    wenn man die Child Kategorie einer bestimmten "Eltern" Kategorie ausgeben will geht das ja recht einfach. In diesem Beispiel ist die ID der Elternkategorie "7".

    PHP
    <?php foreach((get_the_category()) as $childcat) {
    if (cat_is_ancestor_of(7, $childcat)) {
    echo $childcat->cat_name;
    }}
    ?>

    Wenn es sich dabei aber mit eine andere Taxonomy handelt, in meine Fall um die vom Plugin "The Events Calendar" dann sollte es für mein Verständnis so aussehen.

    PHP
    $categories = get_categories(array(
    'taxonomy' => 'tribe_events',
    'child_of' => 7,
    ));
    foreach($categories as $childcat) {
    echo $childcat->cat_name;
    }

    Oder auch so

    PHP
    <?php 
    $categories = get_categories(array(
    'taxonomy' => 'tribe_events'
    ));
    foreach((get_the_category()) as $childcat) {
    if (cat_is_ancestor_of(7, $childcat)) {
    echo $childcat->cat_name;
    }}
    ?>

    Damit erfolgt aber keine Ausgabe. Vielleicht sieht ja jemand von Euch sofort was an dem Code-Snippet falsch ist. Ich komm leider nicht drauf.

    Andere Fehler kann ich ausschließen. Auf dem Template auf dem ich den Code teste werden direkt darüber die Kategorien erfolgreich ausgegeben. Nur halt ohne die spezifische Abfrage einer bestimmten Eltern-Kategorie.

    • Anzeige

    Hallo!

    Wenn du gerade an deiner Website arbeitest oder dein aktuelles Hosting überdenkst: Wir betreiben mit NetzLiving eine Hosting-Plattform, die speziell auf Performance, Sicherheit und einfache Verwaltung ausgelegt ist.

    • ✔️ Schnelle Ladezeiten (optimiert für WordPress & Co.)
    • ✔️ Deutsche Server & DSGVO-konform
    • ✔️ Persönlicher Support (kein 0815-Ticket-System)

    Mehr erfahren

  • Muster, vorausgesetzt 'tribe_events' ist richtig und es gibt Beiträge in passende Unterkategorien:

    Code
    $args = array (
    	'child_of' => 7, 
    	'taxonomy' => 'tribe_events'
    );
    wp_list_categories($args);

    WordPress ist "frei" wie in Freiheit es zu nutzen, aber nicht im Sinne von Freibier. Wer also glaubt man bekommt rund um WordPress alles kostenlos, der irrt. Hilfe ist ein Geschenk für das man sich bedankt, dafür gibt es den 'Gefällt mir' Button. Wer das nicht kann und sich selbst nicht zu helfen weiss, muss sich bezahlte Unterstützung suchen.

  • Tatsächlich habe mich bei der Taxonomy getäuscht. Korrekt ist "TribeEvents".

    So funktioniert es dann auch, es werden dann allerdings alle Unterkategorien von der Elterkategorie mit der ID "7" ausgegeben. Jetzt muss ich es nur noch hinbekommen, dass nur die Kategorien angezeigt werden, die dem jeweiligen Beitrag zugeordnet sind.

    PHP
    <?php
    $args = array (
        'child_of' => 7, 
        'taxonomy' => TribeEvents::TAXONOMY,
    );
    wp_list_categories($args);
    ?>
  • Jetzt muss ich es nur noch hinbekommen, dass nur die Kategorien angezeigt werden, die dem jeweiligen Beitrag zugeordnet sind.

    Code
    global $post;
    $terms = get_the_terms($post->ID, TribeEvents::TAXONOMY);
    $args = array (
    	'child_of' => $terms[0], 
    	'taxonomy' => TribeEvents::TAXONOMY
    );
    wp_list_categories($args);

    WordPress ist "frei" wie in Freiheit es zu nutzen, aber nicht im Sinne von Freibier. Wer also glaubt man bekommt rund um WordPress alles kostenlos, der irrt. Hilfe ist ein Geschenk für das man sich bedankt, dafür gibt es den 'Gefällt mir' Button. Wer das nicht kann und sich selbst nicht zu helfen weiss, muss sich bezahlte Unterstützung suchen.

  • Wie gesagt, folgender Code erzeugt eine korrekte Lister der dem Beitrag zugeordneten Kategorien. Und diesen Ersetze ich.

    PHP
    <?php
            echo tribe_get_event_categories();
            ?>

    Setze ich den Deinen Code-Muster direkt darunter, werden wieder sämtliche Kategorien die es gibt ausgegeben.

    Code
    global $post;
    $terms = get_the_terms($post->ID, TribeEvents::TAXONOMY);
    $args = array (
    	'child_of' => $terms[0], 
    	'taxonomy' => TribeEvents::TAXONOMY
    );
    wp_list_categories($args);


    hmmmm...

  • global $post kann in diesem Fall raus

    WordPress ist "frei" wie in Freiheit es zu nutzen, aber nicht im Sinne von Freibier. Wer also glaubt man bekommt rund um WordPress alles kostenlos, der irrt. Hilfe ist ein Geschenk für das man sich bedankt, dafür gibt es den 'Gefällt mir' Button. Wer das nicht kann und sich selbst nicht zu helfen weiss, muss sich bezahlte Unterstützung suchen.

  • So dann? Gibt leider weiterhin den kompletten Kategoriebaum der Event-Taxonomy aus.

    PHP
    <?php
    $terms = get_the_terms($post->ID, TribeEvents::TAXONOMY);
    $args = array (
    	'child_of' => $terms[0], 
    	'taxonomy' => TribeEvents::TAXONOMY
    );
    wp_list_categories($args);?>
  • Vergleich doch mal das Ergebnis von tribe_get_event_categories() und get_the_terms($post->ID, TribeEvents::TAXONOMY)

    WordPress ist "frei" wie in Freiheit es zu nutzen, aber nicht im Sinne von Freibier. Wer also glaubt man bekommt rund um WordPress alles kostenlos, der irrt. Hilfe ist ein Geschenk für das man sich bedankt, dafür gibt es den 'Gefällt mir' Button. Wer das nicht kann und sich selbst nicht zu helfen weiss, muss sich bezahlte Unterstützung suchen.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!