从 taxonomy_term 获取字段值 "right way"

Get a field value from a taxonomy_term the "right way"

我正在尝试从分类术语中获取各个字段的值(我想以正确的方式进行操作,即不是 $term->field_foo['und'][0]['value']

我能够为节点可靠地执行此操作并针对分类术语调整我的方法,但它似乎不起作用。这是我的代码:

$field = field_get_items('taxonomy_term', $term, 'field_foo');
$value = field_view_value('taxonomy_term', $term, 'field_foo', $field[0]);
$rendered = render($value);

在解决这个问题时,我可以看到 field_get_items 正确地 returns 一个数组...如果我在第一行之后插入一个 var_dump ($field 的),我得到这个:

array (size=1)
  0 => 
    array (size=1)
      'value' => string '1' (length=1)

然而 field_view_value returns 一个空字符串...在第二行之后再次 var_dump ($value)导致:

array (size=2)
  '#markup' => string '' (length=0)
  '#access' => boolean true

谁能看出我错在哪里?

您可以使用实体元数据包装器:

$term = entity_metadata_wrapper('taxonomy_term', TERM_ID);

更简单可靠。