在节点中显示Drupal分类术语描述

时间:2013-12-06 11:26:31

标签: php drupal drupal-7 drupal-theming

由于各种原因,我正在为作者使用分类术语。每个博客节点都有一个术语参考字段 - field_authors - 列出一个或多个作者。我想要做的是显示页面中列出的每个作者的术语描述。我的在线搜索得到了以下代码,我将这些代码放在node-blog.tpl.php中,就在博客文章的标题之后。

<?php
$vid = taxonomy_vocabulary_machine_name_load("authors")->vid;
$terms = taxonomy_get_tree($vid, 0, null, true);
$term_count = count($terms);
for ($i = 0; $i < $term_count; $i++) {
$name = $terms[$i]->name;
$id = $terms[$i]->tid;
$description = $terms[$i]->description;
?>
<div id="<?php print $id; ?>" class="taxonomy-description">
<?php print $description; ?>
 </div>
<?php } ?>

正如您可能已经知道的那样,它会打印词汇“作者”的所有分类术语描述。我想仅展示该页面中列出的术语(作者)的描述。

在我看来,也许有更好的方法来实现这一目标。所以任何更好的建议都会受到最高的赞赏。

1 个答案:

答案 0 :(得分:2)

我建议使用Views模块并创建一个将放置在节点上方的块。

1)视图的类型为“分类术语”。仅创建

New views of type taxonomy term

2)添加“分类术语:使用作者的内容”的关系,这样您就可以使用分类术语表(在我的例子中,词汇表是作者)加入节点表

Add a Relationship

3)为显示的节点的nid添加一个上下文过滤器“内容:Nid ”。由于之前的关系,这已进入范围。

Add a Contextual filter

4)相应地配置过滤器设置。设置“提供默认值 - &gt;来自网址的内容ID

Configure the Filter

5)添加术语描述字段或您需要在博客节点上方显示的任何其他字段。

Add the Term Description field

6)转到块管理(admin / structure / block)并启用新块以显示在Content上方。您也可以将其设置为仅针对博客内容类型显示,但无论如何,因为我们有nid的上下文过滤器,所以这不是必需的。

Add the block above content

7)享受!这是视图和Drupal的强大功能!

Taxonomy term description(s) above relative node