Erhalten Sie die Kategorie von einer ID eines Produkts?
-
-
Wasbedeutet die ID?Wasistein "Produkt"?Ist diesein benutzerdefinierter Beitragstyp?Ein Meta-Feld?Was?What does the ID represent? What is a 'product'? Is this a custom post type? A meta field? What?
- 2
- 2012-11-23
- s_ha_dum
-
Hallo,esistein Woocommerce-Produkt undesistein Post-Typ.Hi, It's a woocommerce product and it's a post type.
- 0
- 2012-11-23
- Rodrigo Sanz
-
4 Antworten
- Stimmen
-
- 2012-11-23
Da die Fragemit "Woocommerce"gekennzeichnetist,geheich davon aus,dasses sich umein Produkt-CPT handelt,das vom WordPress-Plugin "Woocommerce"erstellt wurde.Diese Antwortgiltnicht,wenn diesnicht der Fallist.
Die Produktkategorien sind keinenormalen Kategorien,sonderneine benutzerdefinierte Taxonomie,die speziellfür Produkteerstellt wurde undnur als "Kategorien"gekennzeichnetist.
Sie sollten die Woocommerce-Dokumentation durchgehen,umeine Funktion zufinden,die diesfür Sieerledigt. Wenn Sienichtsfinden,können Sieeine alternative Lösung ausprobieren.Dazu sollten Sie zunächst den Namen der Taxonomie kennen.Sie könnenes aus der URLin Ihrem Browser kopieren,wenn Sie den Bearbeitungsbildschirmfür Kategorienim Backendbesuchen.Anschließend können Sie
wp_get_post_terms
verwenden,um die Bedingungen abzurufen.Since the question is tagged woocommerce, i'm assuming that it's a product CPT created by woocommerce wordpress plugin. This answer doesn't apply if that's not the case.
The products categories is not normal categories, they are a custom taxonomy created specifically for products which is just labeled as "Categories".
You should go through the woocommerce documentation to find some function that would do this for you, if you don't find anything you can try an alternative solution. For that, first you should know the name of the taxonomy. You can copy it from inside the url in your browser when you visit categories edit screen in the backend. Then you can use
wp_get_post_terms
to get the terms.-
Hallo,dankefür deine Antwort.Undja,istein Woocommerce-Produktin WordPress.Ok,ich werdees versuchen. Was sind die $ argsfür wp_get_post_terms?Ich sehe,dass die "Taxonomie" und "Argumente" optional sind,also werdeichesnurmit der ID versuchen.Hi, thanks for your answer. And yes is a woocommerce product in wordpress. Ok, i'm going to try it, what are the $args for wp_get_post_terms ? i see the "taxonomy" and "args" are optional, so i'm going to try only with the ID.
- 0
- 2012-11-23
- Rodrigo Sanz
-
Es wirdnichtnurmit IDfunktionieren.Die Standardtaxonomieist "post_tag".Dortmüssen Sie den Namen der Taxonomie übergeben.Es wird ohne `$ args`funktionieren,aber Sie könnenes verwenden,wenn Siemöchten.Es soll die Standardeinstellungen überschreiben,wie auf [dieser Seite]erläutert (http://codex.wordpress.org/Function_Reference/wp_get_object_terms).It won't work only with ID. The default taxonomy is `post_tag`. You need to pass the name of the taxonomy there. It will work without `$args` but you can use it if you want. It's meant to override the defaults as explained on [this page](http://codex.wordpress.org/Function_Reference/wp_get_object_terms)
- 0
- 2012-11-24
- Mridul Aggarwal
-
Ich habegetestet,aberes wirdnicht die Kategorie ausgegeben,in der sich das Produktbefindet. Ich habe Folgendes verwendet: Php $term_list=wp_get_post_terms (1345,'product_tag',array ("fields"=> "all")); print_r ($term_list); ?>I tested but it doesn't output the categiry that the product is in. I used this, "all")); print_r($term_list); ?>
- 0
- 2012-11-25
- Rodrigo Sanz
-
esgibt Folgendes aus: Array ([0]=> stdClass Object ([term_id]=> 104 [name]=>new [slug]=>new [term_group]=> 0 [term_taxonomy_id]=> 104 [taxonomy]=>product_tag[description]=> Hola quétalestoes una descipción? [parent]=> 0 [count]=> 8)) Array ([0]=> stdClass Object ([term_id]=> 104 [name]=>new [slug]=>new [term_group]=> 0 [term_taxonomy_id]=> 104 [taxonomy]=>product_tag [description]=> Hola quétalestoes una descriptionipóón? [parent]=> 0 [count]=> 8))it outputs this :Array ( [0] => stdClass Object ( [term_id] => 104 [name] => new [slug] => new [term_group] => 0 [term_taxonomy_id] => 104 [taxonomy] => product_tag [description] => Hola qué tal esto es una descripción? [parent] => 0 [count] => 8 ) ) Array ( [0] => stdClass Object ( [term_id] => 104 [name] => new [slug] => new [term_group] => 0 [term_taxonomy_id] => 104 [taxonomy] => product_tag [description] => Hola qué tal esto es una descripción? [parent] => 0 [count] => 8 ) )
- 0
- 2012-11-25
- Rodrigo Sanz
-
Undesgibt keine Kategorieim Array?Habeichetwasfalschgemacht?And there's not category in the array ? Did i do something wrong?
- 0
- 2012-11-25
- Rodrigo Sanz
-
Sie haben `product_tag` verwendet.Istesmöglich,dass der Kategoriename "product_category" war?Der Code scheintin Ordnung zu sein und ab der Ausgabeerhalten Sieeinen Begriffnamens "neu"mit einer ID von 104. Ist "neu" der Nameeines der Tags?You used `product_tag`. Is it possible that the category name was `product_category`? The code seems fine & as from the output you're getting a term named `new` with an id of 104. Is `new` the name of one of the tags?
- 0
- 2012-11-25
- Mridul Aggarwal
-
- 2017-09-02
Option 1
Holen Sie sichmit dieser Funktion alleproduct_cat's
global $product; $terms = get_the_terms( $product->get_id(), 'product_cat' );
Option 2 Wenn Sienur deren IDsbenötigen,können Siemit dieser Funktion alleproduct_category_ids abrufen,dieeinem bestimmten Produkt zugeordnet sind:
global $product; $product_cats_ids = wc_get_product_term_ids( $product->get_id(), 'product_cat' );
Extra
Wenn Siebeispielsweise die Kategorienamen ausdruckenmöchten,benötigen Sie das Kategoriebegriffsobjekt. Dies kannmit
get_term_by()
abgerufen werden.Ein Beispiel:
foreach( $product_cats_ids as $cat_id ) { $term = get_term_by( 'id', $cat_id, 'product_cat' ); echo $term->name; }
Option #1
Get all product_cat's using this function
global $product; $terms = get_the_terms( $product->get_id(), 'product_cat' );
Option #2 If you only need their ids, you can get all product_category_ids associated with a specific product, using this function:
global $product; $product_cats_ids = wc_get_product_term_ids( $product->get_id(), 'product_cat' );
Extra
If you would like to print out - for instance - the categories names, you need the category term-object. This can be retrieved using
get_term_by()
.An example:
foreach( $product_cats_ids as $cat_id ) { $term = get_term_by( 'id', $cat_id, 'product_cat' ); echo $term->name; }
-
- 2012-11-27
Ich habemeine eigene Fragebeantwortet,diese Arbeitfürmich:
<?php $term_list = wp_get_post_terms($id_product,'product_cat',array('fields'=>'ids')); $cat_id = (int)$term_list[0]; echo get_term_link ($cat_id, 'product_cat'); ?>
Danke Mridul Aggarwalfür Ihre Hilfe
I answered my own question, this work for me :
<?php $term_list = wp_get_post_terms($id_product,'product_cat',array('fields'=>'ids')); $cat_id = (int)$term_list[0]; echo get_term_link ($cat_id, 'product_cat'); ?>
Thanks Mridul Aggarwal for your help
-
Sie könnten zumindest Mriduls Antwortpositivbewerten,wenn Sienicht der Meinung sind,dass sie vollständiggenugist,um als richtig akzeptiert zu werden.Es hat Sieeindeutig auf den richtigen Weggebracht.You could at least upvote Mridul's answer, if you don't think it's complete enough to be accepted as correct. Clearly it got you on the right track.
- 3
- 2012-11-27
- Johannes Pille
-
- 2020-08-19
<?php $terms = get_the_terms($product->ID, 'product_cat'); foreach ($terms as $term) { $product_cat = $term->name; echo $product_cat; break; } ?>
<?php $terms = get_the_terms($product->ID, 'product_cat'); foreach ($terms as $term) { $product_cat = $term->name; echo $product_cat; break; } ?>
-
Bitte ** [bearbeiten] Sie Ihre Antwort ** undfügen Sieeine Erklärung hinzu: ** Warum ** könnte das das Problem lösen?Please **[edit] your answer**, and add an explanation: **why** could that solve the problem?
- 0
- 2020-08-19
- fuxia
Ich habe die
ID
eines Produkts (1345
). Wie kannich den Kategorienamen diesesbestimmten Produktsermitteln?Ich versuche
aberesgibt aus:
Wasbedeutet das?
Danke