Comment obtenir l'identifiant actuel du terme de taxonomie sur WordPress?

120

J'ai créé une page taxonomy.php dans mon dossier de thèmes WordPress. Je voudrais obtenir l'identifiant actuel du terme pour une fonction. Comment puis-je l'obtenir?

get_query_var('taxonomy') ne renvoie que le terme slug, je veux l'ID

Syntaxe invalide
la source

Réponses:

304

Ça ne fait rien! Je l'ai trouvé :)

get_queried_object()->term_id;
Syntaxe invalide
la source
4
Génial! Cela m'a fait gagner beaucoup de temps: D
MavBzh
Merci beaucoup!
Anahit Ghazaryan
26
Vous pouvez également simplement utiliser get_queried_object_id()pour récupérer uniquement l'ID. Extrait entier serait$term_id = get_queried_object_id();
David
Bonne réponse . Récemment, je vois une question dans l'échange de pile WordPress. Pourriez-vous s'il-vous-plaît vérifier . wordpress.stackexchange.com/questions/214453/…
Merci beaucoup
FaISalBLiNK
42

Simple et facile!

get_queried_object_id()
theMukhiddin
la source
3
get_queried_object_id () a été introduit dans la version 3.1.0 (23 février 2011) et devrait être la bonne réponse à la question posée. > taxonomy.phppage dans mon dossier de modèles wordpress, je voudrais obtenir le courant term idpour une fonction.
Pea
1
Oui, cette réponse était parfaite
Gendrith
39

Voici l'extrait de code complet nécessaire:

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

Copiez simplement le code ci-dessous!

Cela imprimera le nom et la description de votre taxonomie actuelle (facultatif)

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

Si vous êtes dans la page de taxonomie.

C'est ainsi que vous obtenez tous les détails sur la taxonomie.

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

Voici comment obtenir l'identifiant de la taxonomie

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

Mais si vous êtes en page de message (taxomonie -> enfant)

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

Voir wp_get_post_terms () , vous feriez quelque chose comme ceci:

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

print_r($terms);
Purvik Dhorajiya
la source
1

C'est le terme slug que vous voulez. On dirait que vous pouvez obtenir l'identifiant comme ceci si c'est ce dont vous avez besoin:

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
la source