web-dev-qa-db-ja.com

TIDから分類用語名を取得する方法は?

私たちのものの多くはsite/taxonomy/XXのような形式のURIを持っています。ここで、XXは整数です。

名前からTIDを取得する方法」のような質問がたくさん見つかりましたが、TIDから名前を取得したいと思います。私はブレッドクラムスクリプトをまとめようとしていますが、「home > term」のような証跡を取得している場合を除いて、すべてが素晴らしいです。代わりに、「home > <TERM NAME>」のようにしたいと思います。

どうすればできますか?

33
Brodie

Drupal 7を使用している場合、 taxonomy_term_load() を使用できます

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

一連の用語IDがある場合は、 taxonomy_term_load_multiple() を使用して、ロードごとに1つのクエリを実行する必要をなくすことができます。

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

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

Drupal 6を使用して立ち往生している場合は、 taxonomy_get_term() を使用できます。

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

残念ながら私が知っているDrupal 6のマルチロードオプションはありません。

92
Clive

Drupal 8では、分類用語の名前を次のように取得できます。

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

$name = $term->label();

または、複数をロードするには:

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

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

次の関数は、TIDに基づいて分類用語の名前を返します。

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

D7の場合:

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

    dpm($tid);  

  }  

D8の場合:

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

Drupal 8では、次の方法で用語の名前を取得できます。

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

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

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