it-swarm-eu.dev

Získejte ID slovní zásoby podle termínu nebo uzlu

Budu kontrolovat, zda termín patří do určeného slovníku.

Která funkce se používá k získání slovní zásoby podle termínu nebo uzlu?

9
Charles Yeung

V Drupal 6), pokud znáte ID taxonomického výrazu, můžete získat ID slovní zásoby pomocí následujícího kódu:

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

Pokud máte ID uzlu, můžete pomocí následujícího kódu získat ID slovní zásoby všech taxonomických pojmů spojených s uzlem pomocí následujícího kódu:

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

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

V Drupal 7) bude kód následující:

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

V Drupal 7, vlastnost uzlu $node->taxonomy již neexistuje. Místo toho existuje $node->field_<vocabulary_name>, což je pole se dvěma různými strukturami.

  • značky

    screenshot

  • další taxonomické pojmy

    screenshot

Pokud použijete field_get_items () , získáte taxonomické termíny v jazyce, ve kterém by se zobrazily, nebo v jazyce, jehož kód je předán jako argument funkce.

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

$node obsahuje objekt uzlu a $field_name název pole taxonomického termínu.

$items obsahuje zjednodušené pole ve srovnání s polem obsaženým v $node->field_<vocabulary_name>.

screenshot

15
kiamlaluno

Pro Drupal 7) by výše uvedený kód měl vypadat takto:

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

Další příklady najdete na db_query () drupal 7 funkce).

1
TheodorosPloumis

Řešeno níže uvedeným kódem:

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