용어 또는 노드별로 어휘 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->taxonomy이 더 이상 존재하지 않습니다. 대신 $node->field_<vocabulary_name>두 개의 다른 구조를 가진 배열이 있습니다.

  • 태그

    스크린 샷

  • 다른 분류법

    스크린 샷

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.