用語またはノードごとに語彙IDを取得する


9

用語が指定された語彙に属しているかどうかを確認します。

用語またはノードごとに語彙を取得するために使用される関数はどれですか?

回答:


15

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>ます。

スクリーンショット


1

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関数で他の例を参照してください。


0

以下のコードによって解決されます:

$tid = 18;    
$result = db_query("SELECT vid FROM {term_data} WHERE tid = %d", $tid);
$vid = db_result($result);
echo $vid;
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.