¿Cómo obtengo la identificación del término de taxonomía actual en WordPress?

120

He creado una página taxonomy.php en mi carpeta de temas de WordPress. Me gustaría obtener la identificación del término actual para una función. ¿Cómo puedo conseguir esto?

get_query_var('taxonomy') solo devuelve el término slug, quiero la identificación

Sintaxis inválida
fuente

Respuestas:

304

¡No importa! Lo encontré :)

get_queried_object()->term_id;
Sintaxis inválida
fuente
4
¡Excelente! Esto me ahorró mucho tiempo: D
MavBzh
¡Muchas gracias!
Anahit Ghazaryan
26
También puede usar get_queried_object_id()para recuperar solo la identificación. El fragmento completo sería$term_id = get_queried_object_id();
David
Buena respuesta . Recientemente, vi una pregunta en el intercambio de pila de WordPress. ¿Podría comprobarlo? wordpress.stackexchange.com/questions/214453/…
Muchas gracias
FaISalBLiNK
42

¡Simple y fácil!

get_queried_object_id()
theMukhiddin
fuente
3
get_queried_object_id () se introdujo en 3.1.0 (23 de febrero de 2011) y debería ser la respuesta correcta para la pregunta formulada. > taxonomy.phppágina en mi carpeta de plantillas de wordpress, me gustaría obtener la actual term idpara una función.
Pea
1
Sí, esta respuesta fue perfecta
Gendrith
39

Aquí está el fragmento de código completo necesario:

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

¡Simplemente copie y pegue debajo del código!

Esto imprimirá el nombre y la descripción de su taxonomía actual (opcional)

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

Si estás en la página de taxonomía.

Así es como obtienes todos los detalles sobre la taxonomía.

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

Así es como obtienes el id de taxonomía

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

Pero si está en la página de publicación (taxomonía -> niño)

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

Vea wp_get_post_terms () , haría algo como esto:

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

print_r($terms);
Purvik Dhorajiya
fuente
1

Es el término slug que quieres. Parece que puedes obtener la identificación así si eso es lo que necesitas:

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
fuente