이름에서 분류 용어 ID를 어떻게 얻습니까? 원하는 것을하는 것처럼

내가 원하는 것을하는 것처럼 보이는 taxonomy.module 함수 목록의 유일한 함수 는 개인 함수 인 것 같습니다 ( _taxonomy_get_tid_from_term ).

분류법 용어 이름 만 알고 ID를 찾아야하는 경우 어떤 기능을 사용해야합니까?



답변

그것은의 taxonomy_get_term_by_name () 다음의 코드와 같이 사용합니다.

$term_array = taxonomy_get_term_by_name('Foo');
$term = reset($term_array); # get the first element of the array which is our term object
print $term->name;

답변

taxonomy_get_term_by_name() 트릭을 할 것입니다 :

$terms = taxonomy_get_term_by_name($row->field_term_name);
if (!empty($terms)) {
  $first_term = array_shift($terms);
  print $first_term->tid;
}

답변

이 기능은 저에게 효과적이었습니다.

/**
 * Return the term id for a given term name.
 */
function _get_tid_from_term_name($term_name) {
  $vocabulary = 'tags';
  $arr_terms = taxonomy_get_term_by_name($term_name, $vocabulary);
  if (!empty($arr_terms)) {
    $arr_terms = array_values($arr_terms);
    $tid = $arr_terms[0]->tid;
  }
  else {
    $vobj = taxonomy_vocabulary_machine_name_load($vocabulary);
    $term = new stdClass();
    $term->name = $term_name;
    $term->vid = $vobj->vid;
    taxonomy_term_save($term);
    $tid = $term->tid;
  }
  return $tid;
}

다른 어휘를 사용하는 경우 (태그와 다른) 행 위의 코드에서 수정하십시오.

$vocabulary = 'tags';