Holen Sie sich die Vokabular-ID nach Begriff oder Knoten

9

Ich werde prüfen, ob ein Begriff zu einem bestimmten Wortschatz gehört.

Mit welcher Funktion wird der Wortschatz nach Begriff oder Knoten abgerufen?

Charles Yeung
quelle

Antworten:

15

Wenn Sie in Drupal 6 die Taxonomie-Term-ID kennen, können Sie die Vokabular-ID mithilfe des folgenden Codes abrufen:

$term = taxonomy_get_term($tid);
$vid = $term->vid;

Wenn Sie eine Knoten-ID haben, können Sie den folgenden Code verwenden, um die Vokabular-ID aller mit dem Knoten verknüpften Taxonomiebegriffe mithilfe des folgenden Codes abzurufen:

$node = node_load($nid);
$vids = array();

if (!empty($node->taxonomy)) {
  foreach ($node->taxonomy as $tid => $term) {
    $vids[] = $term->vid;
  }
}

In Drupal 7 lautet der Code wie folgt:

$term = taxonomy_term_load($tid);
$vid = $term->vid;

In Drupal 7 ist die Knoteneigenschaft $node->taxonomynicht mehr vorhanden. Stattdessen gibt es $node->field_<vocabulary_name>ein Array mit zwei verschiedenen Strukturen.

  • Stichworte

    Bildschirmfoto

  • andere taxonomische Begriffe

    Bildschirmfoto

Mit field_get_items () erhalten Sie die Taxonomiebegriffe in der Sprache, in der sie angezeigt werden, oder in der Sprache, deren Code als Argument an die Funktion übergeben wird.

$items = field_get_items('node', $node, $field_name);

$nodeenthält das Knotenobjekt und $field_nameden Namen des Taxonomiebegriffsfelds.

$itemsenthält ein vereinfachtes Array im Vergleich zu dem in enthaltenen Array $node->field_<vocabulary_name>.

Bildschirmfoto

kiamlaluno
quelle
1

Für Drupal 7 sollte der obige Code folgendermaßen aussehen:

 $tid = 18;
 $vid = db_query('SELECT vid FROM {taxonomy_term_data} WHERE tid = :tid', 
                  array(':tid' => $tid)
                )->fetchField();
 echo $vid;

Weitere Beispiele finden Sie unter db_query () drupal 7 function.

TheodorosPloumis
quelle
0

Gelöst durch den folgenden Code:

$tid = 18;    
$result = db_query("SELECT vid FROM {term_data} WHERE tid = %d", $tid);
$vid = db_result($result);
echo $vid;
Charles Yeung
quelle