回答:
Drupal 6では、分類用語IDがわかっている場合、次のコードを使用して語彙IDを取得できます。
$term = taxonomy_get_term($tid);
$vid = $term->vid;
ノードIDがある場合は、次のコードを使用して、次のコードを使用して、ノードに関連付けられているすべての分類用語の語彙IDを取得できます。
$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プロパティ$node->taxonomy
はもう存在しません。代わりに、$node->field_<vocabulary_name>
2つの異なる構造を持つ配列です。
タグ
その他の分類用語
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関数で他の例を参照してください。