Obtenha a categoria de um ID de um produto?
-
-
O que oid representa?O que é um 'produto'?Este é umtipopersonalizado?Um campometa?O que?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
-
Oi,é umproduto WooCommercee é umtipo depostagem.Hi, It's a woocommerce product and it's a post type.
- 0
- 2012-11-23
- Rodrigo Sanz
-
4 respostas
- votos
-
- 2012-11-23
Desde apergunta émarcada com o WooCommerce,estou assumindo que é umproduto CPT criadopeloplugin WooCommerce WordPress.Esta respostanão se aplica senão é o caso.
As categorias deprodutosnão são categoriasnormais,elas são umataxonomiapersonalizada criadaespecificamenteparaprodutos que são apenas rotulados como "categorias".
Você devepassarpela documentação do WooCommerceparaencontrar algumafunção quefariaissopara você,se vocênãoencontrarnada,vocêpodetentar uma solução alternativa.Paraisso,primeiro você deve saber onome dataxonomia.Vocêpode copiá-lo de dentro do URLno seunavegador quando você visitar atela deedição de categoriasnoback-end.Então vocêpode usar
wp_get_post_terms
para obter ostermos.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.-
Oi,obrigadopela sua resposta.E sim é umproduto WooCommerceno WordPress.Ok,voutentar,quais são os $ argspara wp_get_post_terms?Eu vejo a "taxonomia"e "args" são opcionais,então voutentar apenas com o 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
-
Nãofunciona apenas com ID.Ataxonomiapadrão é `post_tag`.Vocêprecisapassar onome dataxonomia lá.Elefuncionará sem `$ args`mas vocêpode usá-lo se quiser.É destinado a substituir ospadrões conformeexplicadoem [estapágina] (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
-
Eutestei,masnãoproduz a categoria que oprodutoestá dentro. Eu useiisso, Php $term_list=wp_get_post_terms (1345,'product_tag',matriz ("campos"=> "todos")); 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
-
Eleproduzeste: array ([0]=> objeto stdclass ([term_id]=> 104 [nome]=>novo [slug]=>novo [term_group]=> 0 [term_taxonomy_id]=> 104 [taxonomia]=>product_tag[Descrição]=> Hola Qué Tal Esto Es DescesCión? [pai]=> 0 [Contagem]=> 8)) Array ([0]=> STDCLASS ([term_id]=> 104 [nome]=>novoSlug]=>novo [term_group]=> 0 [term_taxonomy_id]=> 104 [taxonomia]=>product_tag [descrição]=> hola quétalestoes una descripción? [pai]=> 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
-
Enão há categorianamatriz?Fiz algo deerrado?And there's not category in the array ? Did i do something wrong?
- 0
- 2012-11-25
- Rodrigo Sanz
-
Você usou `Product_Tag`.Épossível que onome da categoriatenha sido "product_category"?O códigoparecefinoe apartir da saída que você recebe umtermo chamado `novo 'com umid de 104.'novo 'é onome de uma dastags?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
opção # 1
Obtenhatodos osproducts_cat usandoestafunção
global $product; $terms = get_the_terms( $product->get_id(), 'product_cat' );
opção # 2 Se vocêprecisar de seus IDs,poderá obtertodos osprodutosproduct_category_ids associados a umproduto específico ,usandoestafunção:
global $product; $product_cats_ids = wc_get_product_term_ids( $product->get_id(), 'product_cat' );
extra
Se você quiserimprimir -porexemplo - osnomes das categorias,vocêprecisa do objeto determo da categoria. Issopode ser recuperado usando
get_term_by()
.Umexemplo:
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
Eu respondiminhaprópriapergunta,estetrabalhoparamim:
<?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'); ?>
Obrigado Mridul Aggarwalpara sua ajuda
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
-
Vocêpoderiapelomenos adiar a resposta de Mridul,se vocênão achar completo o suficientepara ser aceito como correto.Claramente,eleteve vocêno caminho certo.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; } ?>
-
Porfavor ** [editar] sua resposta **e adicione umaexplicação: ** Por que **poderia resolver oproblema?Please **[edit] your answer**, and add an explanation: **why** could that solve the problem?
- 0
- 2020-08-19
- fuxia
Eutenho o
ID
de umproduto (1345
) Comoposso obter onome da categoria desseprodutoespecífico?Eutento
Maseleproduz:
O que aqueles significa?
obrigado