2011-02-14 8 views

答えて

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

私もその本を読んだことがあります:)しかしこれはベストプラクティスですか?私はその関数が大きなマルチレベル配列(オブジェクトを含む)を取得することを意味し、用語IDを手動で検索する必要があります。ノードオブジェクト全体を手動で検索するほうがちょっといいです。 – mimrock

+0

「field_t data_name_tags from WHERE entity_type = 'node' AND entity_id = $ nid'」を使用して、DBからtidsをフェッチすることができます。 – rik

+0

これは、drupal-7 APIにはこれのための機能がないということですか?与えられた(term-reference)フィールドからterm IDを取得する関数で十分でしょう... drupal7にそのようなものがなければ私にとっては奇妙です。 – mimrock

0

ここで、これらの用語を取得しますか?モジュールでは、テーマは...? http://api.drupal.org/api/drupal/modules--taxonomy--taxonomy.module

+0

モジュール内。 taxonomy_node_get_terms()がdrupal-6にあったような関数が必要です。私はすでにAPIのドキュメントをチェックしました。私が不注意だった可能性がありますが、私のために何も見つかりませんでした。 – 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 

完全にテストされていないが。

関連する問題