taxonomy.module函数列表上的唯一函数看起来像我想要的,似乎是私有函数(_taxonomy_get_tid_from_term)。
如果我只知道分类术语名称,我应该使用什么功能?
taxonomy.module函数列表上的唯一函数看起来像我想要的,似乎是私有函数(_taxonomy_get_tid_from_term)。
如果我只知道分类术语名称,我应该使用什么功能?
Answers:
它的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;
foreach ($terms as $term)
并检查,$term->vid
以确保您拥有正确的词汇表。
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;
}
$first_term = array_shift($terms);
此功能对我有用:
/**
* 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';
$foo[0]->tid
什么也不做,因为它返回一个以TID为键的数组。因此,要获得TID,我需要TID,或者foreach()
即使只在一件商品上也要完成?否则:Undefined offset: 0