Как получить название таксономии от tid?

У многих наших материалов есть uris, отформатированный как site /taxonomy /XX, где XX - целое число.

Я нашел много вопросов типа «, как получить TID от имени? », но я хотел бы получить имя из TID. Я пытаюсь собрать скрипт breadcrumb, и все отлично, за исключением случаев, когда я получаю трейл, похожий на «home> term». Вместо этого я хочу иметь его как «home> <TERM NAME>".

Как я могу это сделать?

31 голос | спросил Brodie 23 J000000Monday12 2012, 19:19:54

5 ответов


86

Если вы используете Drupal 7, вы можете использовать taxonomy_term_load ()

$ term = taxonomy_term_load ($ tid);
$ name = $ term-> имя;

Если у вас есть куча идентификаторов терминов, вы можете сохранить выполнение одного запроса для каждой загрузки, используя taxonomy_term_load_multiple () :

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

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

Если вы застряли с помощью Drupal 6, вы можете использовать taxonomy_get_term () :

$ term = taxonomy_get_term ($ tid);
$ name = $ term-> имя;

У Drupal 6 нет возможности множественной загрузки, о которой я знаю, к сожалению.

ответил Clive 23 J000000Monday12 2012, 19:23:10
5

Следующая функция возвращает имя таксономического термина на основе его tid:

function get_term ($ tid) {
  return db_select ('taxonomy_term_data', 't')
  -> ('t', array ('name'))
  -> условие ('tid', $ tid)
  - > выполнить ()
  - > fetchField ();
}
ответил houmem 8 J000000Wednesday15 2015, 10:53:49
4

В 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 ();
}
ответил oknate 2 J0000006Europe/Moscow 2016, 17:54:07
1
  

Для D7:

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

    пм ($ TID);

  }
  

Для D8:

$ term_name = \ Drupal \ taxonomy \ Entity \ Term :: load (2) -> get ('name') -> value;
пм ($ term_name);
ответил Anupriya_vij 11 MonEurope/Moscow2017-12-11T14:52:40+03:00Europe/Moscow12bEurope/MoscowMon, 11 Dec 2017 14:52:40 +0300 2017, 14:52:40
0

Можно получить имя термина в Drupal 8 следующим образом:

//Получить этот термин.
$ TID = 1;
$ term = taxonomy_term_load ($ tid);

//получить имя поля
$ & GT перспектива,; этикетки ();

//или
$ & GT перспективу,; получить ( 'имя') - > значение;
ответил JHONATAN DAVID FERNANDEZ ROSA 11 MonEurope/Moscow2017-12-11T16:24:48+03:00Europe/Moscow12bEurope/MoscowMon, 11 Dec 2017 16:24:48 +0300 2017, 16:24:48

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132