2011-02-14 47 views

回答

3
$node = node_load($nid); 
$terms = field_view_field('node', $node, 'field_tags', array('default')); 
+0

我也讀過那本書:)但這是最佳做法嗎?我的意思是該函數將檢索一個大的多級數組(其中有一個對象),我必須手動搜索術語ID。只是手動搜索整個節點對象稍好一點。 – mimrock

+0

您可以使用'SELECT field_tags_tid FROM field_data_field_tags WHERE entity_type ='node'AND entity_id = $ nid'作爲啓動器從數據庫獲取tid。 – rik

+0

所以你的意思是在drupal-7 api中沒有這個功能?從給定的(術語引用)字段獲得術語ID就足夠了......對於我來說,如果drupal7中沒有這樣的東西,這很奇怪。 – mimrock

0

的field_data_field_tags表只覆蓋了默認標籤領域,可能會或可能不存在,你可能有其他分類了。

然而,taxonomy.module仍保持着taxonomy_term_data/taxonomy_index表,您可以查詢:

SELECT tid FROM {taxonomy_index} WHERE nid = :nid 

或者,如果你想有一個特定詞彙ID:

SELECT ti.tid FROM {taxonomy_index} ti INNER JOIN {taxonomy_term_data} ttd ON ttd.tid = ti.tid WHERE ti.nid = :nid AND vid = :vid 

沒有經過充分測試。