Sprawdzę, czy termin należy do wyznaczonego słownictwa.
Jakiej funkcji używa się, aby uzyskać słownictwo według terminu lub węzła?
Sprawdzę, czy termin należy do wyznaczonego słownictwa.
Jakiej funkcji używa się, aby uzyskać słownictwo według terminu lub węzła?
Odpowiedzi:
W Drupal 6, jeśli znasz identyfikator terminologii, możesz uzyskać identyfikator słownictwa, używając następującego kodu:
$term = taxonomy_get_term($tid);
$vid = $term->vid;
Jeśli masz identyfikator węzła, możesz użyć następującego kodu, aby uzyskać identyfikator słownictwa wszystkich terminów taksonomicznych powiązanych z węzłem za pomocą następującego kodu:
$node = node_load($nid);
$vids = array();
if (!empty($node->taxonomy)) {
foreach ($node->taxonomy as $tid => $term) {
$vids[] = $term->vid;
}
}
W Drupal 7 kod byłby następujący:
$term = taxonomy_term_load($tid);
$vid = $term->vid;
W Drupal 7 właściwość node $node->taxonomyjuż nie istnieje. Zamiast tego istnieje $node->field_<vocabulary_name>tablica o dwóch różnych strukturach.
tagi

inne warunki taksonomiczne

Używając field_get_items () , otrzymujesz warunki taksonomii w języku, w którym będą wyświetlane, lub w języku, którego kod jest przekazywany jako argument funkcji.
$items = field_get_items('node', $node, $field_name);
$nodezawiera obiekt węzła i $field_namenazwę pola terminu systematyki.
$itemszawiera uproszczoną tablicę w porównaniu do tablicy zawartej w $node->field_<vocabulary_name>.

Dla Drupala 7 powyższy kod powinien wyglądać tak:
$tid = 18;
$vid = db_query('SELECT vid FROM {taxonomy_term_data} WHERE tid = :tid',
array(':tid' => $tid)
)->fetchField();
echo $vid;
Zobacz więcej przykładów w funkcji drupal 7 db_query () .
Rozwiązany przez poniższy kod:
$tid = 18;
$result = db_query("SELECT vid FROM {term_data} WHERE tid = %d", $tid);
$vid = db_result($result);
echo $vid;