Erhalten Sie Produktattribute für das aktuelle Produkt und speichern Sie es in einer Variablen

Ich habe versucht herauszufinden, wie ich die Produktattribute des aktuellen Produkts erhalten und in einer Variablen speichern und in eine class einordnen kann.

Ich habe es geschafft, die Produktattribute zu bekommen, leider scheint es alle Produktattribute zu allen Produkten anzuzeigen, die ich eingestellt habe. Hier ist der Code, an dem ich gearbeitet habe.

'product', 'product_cat' => 'liquors', 'meta_query' => array( array( 'key' => '_stock_status', 'value' => 'instock' ) ) ) ); if ( $liquor->have_posts() ) : while ( $liquor->have_posts() ) : $liquor->the_post(); ?> //In this foreach loop, I'm trying to get all the terms for liquor-brands attributes slug . ' '; ?> <div id="post-" class="three columns mix product-post " >

Nach dem Ausführen des Codes hier ist, wie die Ausgabe aussieht.

 

Wie Sie sehen können, zeigen beide Produkte alle Produktattribute, anstatt zu zeigen, was ihnen zugewiesen wurde.

Solutions Collecting From Web of "Erhalten Sie Produktattribute für das aktuelle Produkt und speichern Sie es in einer Variablen"

get_terms() die Begriffe in einer gegebenen Taxonomie oder einer Liste von Taxonomien ab.

Was du brauchst ist

get_the_terms() die Bedingungen der Taxonomie ab, die dem Beitrag angehängt sind.

Sie können also einfach ersetzen

 $brand_terms = get_terms( 'pa_liquor-brands' ); 

mit

 $brand_terms = get_the_terms( $post, 'pa_liquor-brands' ); 

Und das sollte zum Trick.

Sie können mehr über diese zwei functionen hier lesen:

https://developer.wordpress.org/reference/functions/get_terms/ https://developer.wordpress.org/reference/functions/get_the_terms/

Bearbeiten: Und Sie müssen auch Ihre $brand_string sonst wird es Begriffe aus anderen Posts hinzufügen und sie ausgeben

 $brand_terms = get_the_terms($post, 'pa_liquor-brands'); $brand_string = ''; // Reset string foreach ($brand_terms as $term) : $brand_string .= $term->slug . ' '; endforeach; // echo $brand_string down here somewhere