Chức năng này làm việc cho tôi:
/**
* 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;
}
Nếu bạn đang sử dụng một từ vựng khác (khác với Thẻ), thì hãy sửa đổi trong mã phía trên dòng:
$vocabulary = 'tags';
$foo[0]->tid
không làm gì cả vì nó trả về một mảng được khóa bằng TID. Vì vậy, để có được TID, tôi cần TID hoặc thực hiệnforeach()
mặc dù chỉ trên một mặt hàng? Mặt khác:Undefined offset: 0