{"id":229256,"date":"2022-10-28T11:38:00","date_gmt":"2022-10-28T08:38:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=229256"},"modified":"2022-11-09T06:10:14","modified_gmt":"2022-11-09T03:10:14","slug":"como-obter-uma-taxonomia-do-wordpress-por-id-de-termo","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/pt-pt\/como-obter-uma-taxonomia-do-wordpress-por-id-de-termo\/","title":{"rendered":"Como obter uma taxonomia do WordPress por ID de termo"},"content":{"rendered":"<p>Ocasionalmente, ao trabalhar em um projeto, h\u00e1 momentos em que seria bom ter uma fun\u00e7\u00e3o de API para ajudar a alcan\u00e7ar o que precisa ser feito. Caso em quest\u00e3o: a capacidade de recuperar uma taxonomia por ID de termo.<\/p>\n<p>Concedido, n\u00e3o \u00e9 uma coisa dif\u00edcil de fazer, mas ter a capacidade de recuperar as informa\u00e7\u00f5es de funcionalidades pr\u00e9-existentes \u00e9 sempre bom.<\/p>\n<p>Mas quando isso n\u00e3o \u00e9 poss\u00edvel, escrevemos do nosso jeito, certo?<\/p>\n<h2>Recuperar uma taxonomia por ID de termo<\/h2>\n<p>Quando me proponho a fazer algo assim, geralmente executo a ideia de alguns outros desenvolvedores para ter certeza de que n\u00e3o estou perdendo alguma fun\u00e7\u00e3o que existe no n\u00facleo do WordPress e simplesmente n\u00e3o sei sobre isso.<\/p>\n<p>(Isso acontece mais do que voc\u00ea imagina, mas pode ser mais um problema para mim do que qualquer outra coisa. Mesmo assim, o WordPress \u00e9 um grande software :).<\/p>\n<p>O caso de uso para algo assim \u00e9 simples:<\/p>\n<ul>\n<li>Eu tenho um ID de termo que foi salvo no banco de dados por outros meios (como um elemento de sele\u00e7\u00e3o em outro lugar no aplicativo, como o painel).<\/li>\n<li>Desejo exibir o nome da taxonomia associado a esse ID de termo.<\/li>\n<\/ul>\n<p>Conceitualmente, penso nisso como um tipo de olhar reverso. Normalmente, podemos pegar uma taxonomia e pesquisar seus termos. Mas para uma taxonomia por termo ID est\u00e1 indo na outra dire\u00e7\u00e3o.<\/p>\n<p>Felizmente, \u00e9 bastante f\u00e1cil se voc\u00ea pegar carona em <a href=\"https:\/\/codex.wordpress.org\/Function_Reference\/get_term\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">uma API existente<\/a>. <a href=\"https:\/\/gist.github.com\/tommcfarlin\/475f3d28451809ffd43e5ffcb686e05d\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Confira<\/a> :<\/p>\n<pre><code>&lt;?php\n\n\/**\n * Retrieves the taxonomy name associated on the specified $term_id. \n *\n * @access private\n * @param  int    $term_id  The term ID from which to retrieve the taxonomy name.\n * @return string $taxonomy The name of the taxaonomy associated with the term ID.\n *\/\nprivate function get_taxonomy_by_term_id( $term_id) {\n\n    \/\/ We can't get a term if we don't have a term ID.\n    if (0 === $term_id || null === $term_id) {\n        return;\n    }\n\n    \/\/ Grab the term using the ID then read the name from the associated taxonomy.\n    $taxonomy = '';\n    $term = get_term( $term_id );\n    if (false !== $term) {\n        $taxonomy = $term-&gt;taxonomy;\n    }\n\n    return trim( $taxonomy );\n}\n<\/code><\/pre>\n<p>O c\u00f3digo deve ser f\u00e1cil de seguir (se n\u00e3o for pelos coment\u00e1rios acima da fun\u00e7\u00e3o), mas retornar\u00e1 uma string vazia ou o nome da taxonomia com base no ID do termo.<\/p>\n<p>Como get_term recupera um objeto <a href=\"https:\/\/developer.wordpress.org\/reference\/classes\/wp_term\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">WP_Term<\/a>, podemos examinar a propriedade de taxonomia do termo para obter o nome. Em seguida, aparo a string por precau\u00e7\u00e3o (se estou trabalhando com o c\u00f3digo de outra pessoa, nunca sei se \u00e9 preenchido ou n\u00e3o e n\u00e3o quero caracteres estranhos).<\/p>\n<p>Independentemente disso, agora voc\u00ea tem uma fun\u00e7\u00e3o dispon\u00edvel para pegar o nome da taxonomia pelo termo ID. Se uma string vazia for retornada, nenhum nome de taxonomia foi encontrado.<\/p>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">Fonte de grava\u00e7\u00e3o:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/tommcfarlin.com\" class=\"external external_icon\">tommcfarlin.com<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>H\u00e1 momentos em que seria bom ter uma fun\u00e7\u00e3o de API para ajudar a recuperar uma taxonomia por ID de termo. Aqui est\u00e1 uma maneira de fazer isso.<\/p>\n","protected":false},"author":1,"featured_media":167462,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[898,722,806,846,867],"tags":[1170,1170],"class_list":["post-229256","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-codigo-2","category-desenvolvedor","category-php-8","category-tutoriais","category-wordpress-8","tag-affiai-pt-pt"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/posts\/229256","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/comments?post=229256"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/posts\/229256\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/media\/167462"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/media?parent=229256"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/categories?post=229256"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/tags?post=229256"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}