Перерахуйте всі терміни зі словникового запасу


25

У мене є таксономія, яка називається сервісом, і хочу перерахувати всі терміни. Я можу завантажити вокаб

 $vocabulary = taxonomy_vocabulary_machine_name_load('Services')

але неможливо побачити всі умови.


Ви можете написати докладний код?
monymirza

Відповіді:


43

Є кілька способів, але я віддаю перевагу entity_load():

$vocabulary = taxonomy_vocabulary_machine_name_load('Services');
$terms = entity_load('taxonomy_term', FALSE, array('vid' => $vocabulary->vid));

Ви також можете використовувати:


Чи можете ви поясніть переваги використання entity_load?
niksmac

3
@NikhilM Набирати символів менше, ніж taxonomy_term_load_multiple()тому я особисто віддаю перевагу. Використання taxonomy_get_tree()вводить непотрібні рівні складності у відповідні запити, якщо ви конкретно не потребуєте термінів у їх первинній ієрархії (яку ОП не вказав)
Clive

Мені це подобається, я думаю, що відповідь нижче трохи простіше читати.
LeBlaireau

@welovedesign Дійсно? Я вважаю за краще 2 рядки понад 6, але це лише особисті переваги :) Поки це менше 80 символів, ви все ще дотримуєтесь стандартів кодування Drupal
Clive

Мій +1 за дотримання стандартів кодування Drupal
niksmac

18

Я хотів би скористатися цим кодом.

$name = 'YOUR_VOCAB_NAME';
$myvoc = taxonomy_vocabulary_machine_name_load($name);
$tree = taxonomy_get_tree($myvoc->vid);
foreach ($tree as $term) {
 echo $term->tid;
}

таксономія_vocabulary_machine_name_load

таксономія_get_tree


Якщо у вас є багатомовний веб-сайт, це не працює як потрібно. Якщо я хочу всі умови, незалежно від мови, це не дає належних результатів. "taxonomy_get_tree" буде аналізувати результати на основі мови. вищезазначена відповідь працює для мене
Vaibhav Jain
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.