0

我在 Drupal 7 安装中有这个数组,它超出了属于特定词汇 id 的术语列表:

<?php print render($content['taxonomy_vocabulary_3']); ?>

现在,它将结果输出到列表中,我想在逗号分隔的行中输出它。

现在,我想我可以用 foreach 语句来做到这一点?

在阅读文档后,我已经尝试过了,但它什么也没输出:

foreach($taxonomy_vocabulary_3 as $id=>$tag) {
echo "$tag, " ;
}

我查看了 Devel 模块告诉我的关于该数组的内容,它向我展示了这一点:

taxonomy_vocabulary_3 (Array, 1 element)
    und (Array, 2 elements)
        0 (Array, 1 element)
            tid (String, 3 characters ) 141
        1 (Array, 1 element)
            tid (String, 3 characters ) 320

但正如您所看到的,它在每种情况下都显示术语 id,而不是术语名称......

你有什么建议?谢谢!!

4

2 回答 2

2

你得到的是一个构建数组 - 这意味着

$content['taxonomy_vocabulary_3']['#theme']

将是用于呈现词汇表的主题函数。如果你想改变输出,你有两个很好的解决方案。

  • 覆盖主题中的标准主题函数——这将改变对该主题函数的所有调用的输出——在这种情况下,所有词汇表的呈现方式。
  • 将值更改#theme为您喜欢的主题功能 - 这可能是您在主题中定义的自定义主题功能。

有关如何呈现术语的帮助,您可以查看原始主题功能的实现方式 - 您可以查看Drupal API 文档

于 2012-08-18T18:00:45.633 回答
2

您可以加载该术语,然后打印它的标题。

foreach($vocabulary as $tid) {
  $term = taxonomy_term_load($tid);
  // print whatever you want from this object.
  print $term->title . ', '; 
}   

taxonomy_term_load

于 2012-08-19T05:09:20.600 回答