wake-up-neo.net

get_terms parent nur für das aktuelle Produkt

Ich wünschte, jemand könnte mir einen Hinweis geben.

Ich zeige tatsächlich alle Produktkategorien (product_cat-Taxonomie) auf Produkten mit einer Seite an und zeige auch untergeordnete Produkte an.

Zum Beispiel: Produkt-A hat Cat1-parent> Cat1-child1, Cat1-child2 => Der Code zeigt sie korrekt an, zeigt aber auch jede andere Elternkategorie an, die zu einem anderen vorhandenen Produkt gehört .... Ergebnis Ich bekomme ein zusätzliches Elternteil Kategorie ohne Kinder angezeigt.

Daher möchte ich nur übergeordnete Kategorien anzeigen, die zum Produkt selbst gehören.

Ich denke, ich vermisse etwas Wissen am Anfang des Codes mit der Funktion get_terms

$parents = get_terms( 'product_cat' , array( 'parent' => 0 ) );

foreach( $parents as $parent ):

echo '<div class="parent '.$parent->slug.'">' . $parent->name . '</div>';
1

get_terms bezieht sich auf das Abrufen aller Bedingungen einer Taxonomie. get_the_terms greift nach allen Begriffen, die sich auf den Beitrag beziehen.

Das Problem ist, dass Sie nur die Begriffe zurückgeben möchten, die übergeordnete Kategorien sind, nicht die untergeordneten, und get_the_terms kein Argumentarray übergibt.

$terms = get_the_terms( get_the_ID(), 'product_cat' );

foreach ( $terms as $term ){
    if ( $term->parent == 0 ) {
        echo '<div class="parent '.$term->slug.'">' . $term->name . '</div>';
    }
}
1
socki03

Danke für die Lektion. Ich verstehe jetzt besser. Ich habe gerade meinen Termnamen geändert und in meine vollständige Funktion eingefügt: $parents = get_the_terms( get_the_ID(), 'product_cat' );

foreach ( $parents as $parent ):if ( $parent->parent == 0 ) {echo '<div class="parent '.$parent->slug.'">' . $parent->name . '</div>';}

Sie haben mir sehr geholfen. Vielen Dank!

0