Перечислите все термины из словаря


25

У меня есть таксономия, называемая сервисами, и я хочу перечислить все условия. Я могу загрузить Vocab с

 $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()вводит ненужные уровни сложности в соответствующие запросы, если только вам не нужны термины в их исходной иерархии (которую ОП не указал)
Клайв

Мне это нравится, я думаю, что ответ ниже немного легче читать, хотя.
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;
}

taxonomy_vocabulary_machine_name_load

taxonomy_get_tree


Если у вас есть многоязычный сайт, это не работает так, как вам нужно. Если я хочу все условия, независимо от языка, это не даст вам должных результатов. "taxonomy_get_tree" будет анализировать результаты на основе языка.
Приведенный
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.