Terim veya düğüme göre kelime kimliğini alın


9

Bir terimin belirli bir kelime dağarcığına ait olup olmadığını kontrol edeceğim.

Terim veya düğüme göre kelime bilgisi almak için hangi işlev kullanılır?

Yanıtlar:


15

Drupal 6'da, sınıflandırma terimi kimliğini biliyorsanız, aşağıdaki kodu kullanarak kelime kimliğini alabilirsiniz:

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

Bir düğüm kimliğiniz varsa, aşağıdaki kodu kullanarak düğümle ilişkili tüm sınıflandırma terimlerinin kelime kimliğini almak için aşağıdaki kodu kullanabilirsiniz:

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

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

Drupal 7'de kod aşağıdaki gibi olacaktır:

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

Drupal 7'de, düğüm özelliği $node->taxonomyartık mevcut değil. Bunun yerine, $node->field_<vocabulary_name>iki farklı yapıya sahip bir dizi var.

  • etiketler

    ekran görüntüsü

  • diğer sınıflandırma terimleri

    ekran görüntüsü

Field_get_items () kullanarak , sınıflandırma terimlerini görüntülenecekleri dilde veya kodu işleve bağımsız değişken olarak iletilen dilde alırsınız.

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

$nodedüğüm nesnesini ve $field_namesınıflandırma terimi alanının adını içerir.

$itemsiçindeki diziye kıyasla basitleştirilmiş bir dizi içeriyor $node->field_<vocabulary_name>.

ekran görüntüsü


1

Drupal 7 için yukarıdaki kod şöyle olmalıdır:

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

Db_query () drupal 7 işlevinde daha fazla örneğe bakın .


0

Aşağıdaki kodla çözüldü:

$tid = 18;    
$result = db_query("SELECT vid FROM {term_data} WHERE tid = %d", $tid);
$vid = db_result($result);
echo $vid;
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.