Como obter uma taxonomia do WordPress por ID de termo
Ocasionalmente, ao trabalhar em um projeto, há momentos em que seria bom ter uma função de API para ajudar a alcançar o que precisa ser feito. Caso em questão: a capacidade de recuperar uma taxonomia por ID de termo.
Concedido, não é uma coisa difícil de fazer, mas ter a capacidade de recuperar as informações de funcionalidades pré-existentes é sempre bom.
Mas quando isso não é possível, escrevemos do nosso jeito, certo?
Recuperar uma taxonomia por ID de termo
Quando me proponho a fazer algo assim, geralmente executo a ideia de alguns outros desenvolvedores para ter certeza de que não estou perdendo alguma função que existe no núcleo do WordPress e simplesmente não sei sobre isso.
(Isso acontece mais do que você imagina, mas pode ser mais um problema para mim do que qualquer outra coisa. Mesmo assim, o WordPress é um grande software :).
O caso de uso para algo assim é simples:
- Eu tenho um ID de termo que foi salvo no banco de dados por outros meios (como um elemento de seleção em outro lugar no aplicativo, como o painel).
- Desejo exibir o nome da taxonomia associado a esse ID de termo.
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á indo na outra direção.
Felizmente, é bastante fácil se você pegar carona em uma API existente. Confira :
<?php
/**
* Retrieves the taxonomy name associated on the specified $term_id.
*
* @access private
* @param int $term_id The term ID from which to retrieve the taxonomy name.
* @return string $taxonomy The name of the taxaonomy associated with the term ID.
*/
private function get_taxonomy_by_term_id( $term_id) {
// We can't get a term if we don't have a term ID.
if (0 === $term_id || null === $term_id) {
return;
}
// Grab the term using the ID then read the name from the associated taxonomy.
$taxonomy = '';
$term = get_term( $term_id );
if (false !== $term) {
$taxonomy = $term->taxonomy;
}
return trim( $taxonomy );
}
O código deve ser fácil de seguir (se não for pelos comentários acima da função), mas retornará uma string vazia ou o nome da taxonomia com base no ID do termo.
Como get_term recupera um objeto WP_Term, podemos examinar a propriedade de taxonomia do termo para obter o nome. Em seguida, aparo a string por precaução (se estou trabalhando com o código de outra pessoa, nunca sei se é preenchido ou não e não quero caracteres estranhos).
Independentemente disso, agora você tem uma função disponível para pegar o nome da taxonomia pelo termo ID. Se uma string vazia for retornada, nenhum nome de taxonomia foi encontrado.