web-dev-qa-db-fra.com

Comment obtenir le nom du terme de taxonomie de tid?

Beaucoup de nos trucs ont des uris formatés comme site/taxonomy/XX, où XX est un entier.

J'ai trouvé beaucoup de questions comme "comment obtenir le TID du nom?", mais j'aimerais obtenir le nom du TID. J'essaie de créer un script de fil d'Ariane et tout va bien, sauf dans les cas où je reçois une piste comme "home > term ". Au lieu de cela, je veux l'avoir comme" home > <TERM NAME> ".

Comment faire?

33
Brodie

Si vous utilisez Drupal 7 vous pouvez utiliser taxonomy_term_load()

$term = taxonomy_term_load($tid);
$name = $term->name;

Si vous avez un tas d'ID de termes, vous pouvez éviter d'avoir à exécuter une seule requête pour chaque chargement en utilisant taxonomy_term_load_multiple() :

$tids = array(1, 2, 3);
$terms = taxonomy_term_load_multiple($tids);

foreach ($terms as $term) {
  $name = $term->name;
}

Si vous êtes bloqué en utilisant Drupal 6 vous pouvez utiliser taxonomy_get_term() :

$term = taxonomy_get_term($tid);
$name = $term->name;

Il n'y a pas d'option de chargement multiple pour Drupal 6 que je connais malheureusement.

92
Clive

Dans Drupal 8, vous pouvez obtenir le nom des termes de taxonomie de cette façon:

$term = \Drupal::entityTypeManager()->getStorage('taxonomy_term')->load($tid);

$name = $term->label();

Ou pour en charger plusieurs:

$terms = \Drupal::entityTypeManager()->getStorage('taxonomy_term')->loadMultiple($tids);

foreach($terms as $term) {
  $name = $term->label();
}
6
oknate

La fonction suivante renvoie le nom d'un terme de taxonomie en fonction de son tid:

function get_term($tid) {
  return db_select('taxonomy_term_data', 't')
  ->fields('t', array('name'))
  ->condition('tid', $tid)
  ->execute()
  ->fetchField();
}
5
houmem

Pour D7:

$term = taxonomy_get_term_by_name($term_name, $vocab_name);  
  foreach($term as $key => $data) {  
    $tid = $data->tid;  

    dpm($tid);  

  }  

Pour D8:

$term_name = \Drupal\taxonomy\Entity\Term::load(2)->get('name')->value;  
dpm($term_name);  
1
Anupriya_vij

Il est possible d'obtenir le nom du terme en Drupal 8 de la manière suivante:

//Obtain the term.
$tid=1;
$term= taxonomy_term_load($tid);

//get the field name
$term->label();

//or
$term->get('name')->value;