it-swarm-es.com

¿Cómo obtener el nombre del término de taxonomía de tid?

Muchas de nuestras cosas tienen formato uris como site/taxonomy/XX, donde XX es un número entero.

Encontré muchas preguntas como "¿cómo obtener el TID del nombre?", pero me gustaría obtener el nombre del TID. Estoy tratando de armar un script de migas de pan y todo es genial, excepto en estos casos en los que obtengo un rastro como "home > term ". En cambio, quiero tenerlo como" home > <TERM NAME> ".

¿Como lo puedo hacer?

33
Brodie

Si está usando Drupal 7 puede usar taxonomy_term_load()

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

Si tiene un montón de ID de términos, puede ahorrar tener que ejecutar una sola consulta para cada carga utilizando taxonomy_term_load_multiple() :

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

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

Si está atascado usando Drupal 6 puede usar taxonomy_get_term() :

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

No hay una opción de carga múltiple para Drupal 6 que conozco desafortunadamente.

92
Clive

En Drupal 8, puede obtener el nombre de los términos de taxonomía de esta manera:

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

$name = $term->label();

O para cargar múltiples:

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

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

La siguiente función devuelve el nombre de un término de taxonomía basado en su tid:

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

Para D7:

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

    dpm($tid);  

  }  

Para D8:

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

Es posible obtener el nombre del término en Drupal 8 de la siguiente manera:

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

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

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