Відповіді:
У Drupal 6, якщо ви знаєте ідентифікатор терміна таксономії, ви можете отримати ідентифікатор словника, використовуючи наступний код:
$term = taxonomy_get_term($tid);
$vid = $term->vid;
Якщо у вас є ідентифікатор вузла, ви можете використовувати наступний код, щоб отримати ідентифікатор словника всіх термінів таксономії, пов'язаних з вузлом, використовуючи наступний код:
$node = node_load($nid);
$vids = array();
if (!empty($node->taxonomy)) {
foreach ($node->taxonomy as $tid => $term) {
$vids[] = $term->vid;
}
}
У Drupal 7 код буде таким:
$term = taxonomy_term_load($tid);
$vid = $term->vid;
У Drupal 7 властивість вузла $node->taxonomy
вже не існує. Натомість є $node->field_<vocabulary_name>
, що представляє собою масив з двома різними структурами.
теги
інші терміни систематики
Використовуючи field_get_items () , ви отримаєте терміни таксономії на мові, на якій вони будуть відображатися, або на мові, чий код передається як аргумент функції.
$items = field_get_items('node', $node, $field_name);
$node
містить об'єкт вузла та $field_name
ім'я поля терміна таксономії.
$items
містить спрощений масив порівняно з масивом, що міститься в $node->field_<vocabulary_name>
.
Для Drupal 7 наведений вище код повинен бути таким:
$tid = 18;
$vid = db_query('SELECT vid FROM {taxonomy_term_data} WHERE tid = :tid',
array(':tid' => $tid)
)->fetchField();
echo $vid;
Дивіться більше прикладів на db_query () функцію drupal 7.