Como obtenho a id do termo de taxonomia atual no WordPress?

120

Criei uma página taxonomy.php na minha pasta de temas do WordPress. Gostaria de obter o id do termo atual para uma função. Como posso conseguir isso?

get_query_var('taxonomy') retorna apenas o termo slug, quero o ID

Sintaxe inválida
fonte

Respostas:

304

Deixa pra lá! Eu encontrei :)

get_queried_object()->term_id;
Sintaxe inválida
fonte
4
Ótimo! Isso me economizou muito tempo: D
MavBzh
Muito obrigado!
Anahit Ghazaryan
26
Você também pode usar apenas get_queried_object_id()para recuperar apenas o ID. O trecho inteiro seria$term_id = get_queried_object_id();
David,
Boa resposta . Recentemente, vi uma pergunta na troca de pilha do WordPress. Você poderia verificar. wordpress.stackexchange.com/questions/214453/…
Muito obrigado
FaISalBLiNK
42

Simples e fácil!

get_queried_object_id()
theMukhiddin
fonte
3
get_queried_object_id () foi introduzido em 3.1.0 (23 de fevereiro de 2011) e deve ser a resposta correta para a pergunta feita. > taxonomy.phppágina na minha pasta de modelos do wordpress, gostaria de obter o atual term idpara uma função.
Pea
1
Sim, essa resposta foi perfeita
Gendrith
39

Aqui está todo o snippet de código necessário:

$queried_object = get_queried_object();
$term_id = $queried_object->term_id;
Tim Bowen
fonte
14

Basta copiar e colar o código abaixo!

Isso imprimirá seu nome de taxonomia atual e descrição (opcional)

<?php 
   $tax = $wp_query->get_queried_object();
   echo ''. $tax->name . '';
   echo "<br>";
   echo ''. $tax->description .''; 
?>
Varsha Dhadge
fonte
11

Se você estiver na página de taxonomia.

É assim que você obtém todos os detalhes sobre a taxonomia.

get_term_by( 'slug', get_query_var( 'term' ), get_query_var( 'taxonomy' ) );

É assim que você obtém o id de taxonomia

$termId = get_term_by( 'slug', get_query_var( 'term' ), get_query_var( 'taxonomy' ) )->term_id;

Mas se você estiver na página de postagem (taxomonia -> criança)

$terms = wp_get_object_terms( get_queried_object_id(), 'taxonomy-name');
$term_id = $terms[0]->term_id;
Fúria
fonte
7
<?php 
$terms = get_the_terms( $post->ID, 'taxonomy');
foreach ( $terms as $term ) {
    $termID[] = $term->term_id;
}
echo $termID[0]; 
?>
Jadson Moreira
fonte
3

Veja wp_get_post_terms () , você faria algo assim:

global $post;
$terms = wp_get_post_terms( $post->ID, 'YOUR_TAXONOMY_NAME',array('fields' => 'ids') );

print_r($terms);
Purvik Dhorajiya
fonte
1

É o termo slug que você deseja. Parece que você pode obter o id assim se for necessário:

function get_term_link( $term, $taxonomy = '' ) {
    global $wp_rewrite;

    if ( !is_object($term) ) {
        if ( is_int( $term ) ) {
            $term = get_term( $term, $taxonomy );
        } else {
            $term = get_term_by( 'slug', $term, $taxonomy );
        }
    }
SYED FARHAN KARIM
fonte