Drupal7如何在父分类中显示其所有子分类的内容

来源:互联网 发布:天下第一签软件 编辑:程序博客网 时间:2024/06/01 12:12

假设有如下的分类结构:
分类1 id = 1
- 分类2 id = 2
- 分类3 id = 3
分类2 和分类3是分类1的子分类

在Drupal6中,taxonomy模块支持在url中使用运算符来实现分类的合并和筛选。

  • http://mysite.com/taxonomy/term/1+2,将显示属于分类1或分类2的内容。
  • http://mysite.com/taxonomy/term/1,2,将显示既属于分类1又属于分类2的内容。

这样http://mysite.com/taxonomy/term/1+2+3 就可以显示分类1及其子分类的内容。

在Drupal7中,这个功能去掉了。可以通过views模块来实现。
实现方法:

  • 安装views模块(Drupal7版本的views需要ctools模块的支持,所以需要同时安装ctoos。),Drupal7现在可以从模块管理界面直接安装模块了,很方便。
  • 进入模块管理页面,启用views和views_ui模块。
  • 点击顶部管理菜单中的“结构”,然后点击views,进入views管理页面。在这个页面中找到Taxonomy term这个view,然后点击启用。这样再访问分类页面的时候就由这个view进行执行了。

然后点击Taxonomy term这个view后面的编辑,进入view的编辑页面。找到 Advanced,点击,在展开内容里找到“分类: Term ID (with depth) ”,点击进行编辑。

在这里有个Depth选项,控制着分类内容的调用层次。默认是0,我们可以把它改成1,这样就能调用分类1的子分类的内容了。如果子分类下面还有子分类,这个值就要相应的调整,每多一层加1。

然后点击Apply回到view编辑界面,点击保存。
这样再访问 http://mysite.com/taxonomy/term/1 的时候,显示的就是分类1下面所有子分类的内容了。