Ottieni la categoria da un ID di un prodotto?
-
-
Cosa rappresenta l'ID?Cos'è un "prodotto"?È untipo dipostpersonalizzato?Unmetafield?Che cosa?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
-
Ciao,è unprodotto woocommerceed è untipo dipost.Hi, It's a woocommerce product and it's a post type.
- 0
- 2012-11-23
- Rodrigo Sanz
-
4 risposta
- voti
-
- 2012-11-23
Poiché la domanda è contrassegnata come woocommerce,presumo che sitratti di unprodotto CPT creato dalplugin woocommerce wordpress.Questa rispostanon si applica senon è così.
Le categorie diprodottinon sono categorienormali,sono unatassonomiapersonalizzata creata appositamenteperi prodotti che viene semplicementeetichettata come "Categorie".
Dovresti consultare la documentazione di woocommercepertrovare qualchefunzione che lofarebbeperte,senontrovinullapuoiprovare una soluzione alternativa.Per questo,prima dovresti conoscereilnome dellatassonomia.Puoi copiarlo dall'interno dell'URLneltuobrowser quando visiti la schermata dimodifica delle categorienelbackend.Quindipuoi utilizzare
wp_get_post_terms
per ottenerei termini.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.-
Ciao,grazieper latua risposta.E sì,è unprodotto woocommercein wordpress.Ok,loproverò,quali sonoi $ argsper wp_get_post_terms?vedo che "tassonomia"e "args" sono opzionali,quindiproverò solo con l'ID.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
-
Nonfunzionerà solo con ID.Latassonomiapredefinita è "post_tag".Devipassareilnome dellatassonomia lì.Funzionerà senza "$ args"mapuoi usarlo se lo desideri.Ha lo scopo di sovrascriverei valoripredefiniti come spiegatoin [questapagina] (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
-
Hoprovatomanon restituisce la categoriain cui sitrovailprodotto. Ho usato questo, 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
-
restituisce questo: 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 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étalestoes una descripció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
-
Enon c'è categorianellamatrice?Hofatto qualcosa dimale?And there's not category in the array ? Did i do something wrong?
- 0
- 2012-11-25
- Rodrigo Sanz
-
Hai usato "tag_prodotto".Èpossibile cheilnome della categoriafosse "product_category"?Il codice sembra apostoe dall'output stai ottenendo untermine chiamato "new" con unid di 104. "new" èilnome di uno deitag?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
Opzionen. 1
Ottienituttii product_cat utilizzando questafunzione
global $product; $terms = get_the_terms( $product->get_id(), 'product_cat' );
Opzionen. 2 Seti servono soloi loro ID,puoi otteneretuttii product_category_ids associati a uno specifico prodotto ,utilizzando questafunzione:
global $product; $product_cats_ids = wc_get_product_term_ids( $product->get_id(), 'product_cat' );
<"Extra"
Se desideri stampare,adesempio,i nomi delle categorie,haibisogno deltermine-oggetto della categoria. Questopuòessere recuperato utilizzando
get_term_by()
.Unesempio:
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
Ho risposto allamia stessa domanda,questo lavoroperme:
<?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'); ?>
Grazie Mridul Aggarwalperiltuo aiuto
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
-
Potresti almeno votare la risposta di Mridul,senon ritieni che sia abbastanza completa daessere accettata come corretta.Chiaramenteti hamesso sulla stradagiusta.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; } ?>
-
Perfavore ** [modifica] latua risposta **e aggiungi una spiegazione: **perché ** questopotrebbe risolvereilproblema?Please **[edit] your answer**, and add an explanation: **why** could that solve the problem?
- 0
- 2020-08-19
- fuxia
Ho l '
ID
da unprodotto (1345
) comeposso ottenereilnome della categoria di quelprodotto specifico?Provo
ma restituisce:
Cosa significa?
Grazie