首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Drupal 7:手动列出分类法术语和具有这些术语的节点

Drupal 7:手动列出分类法术语和具有这些术语的节点
EN

Stack Overflow用户
提问于 2012-11-02 16:01:46
回答 2查看 1.6K关注 0票数 0

在Drupal 7块中,我试图在无序列表中列出特定词汇表的分类术语,并将作为子级的任何已发布节点作为分类法术语的一部分。

示例:

假设我有一个名为“产品”的词汇,它的分类术语是啤酒、葡萄酒和威士忌。比如说,啤酒有两个内容节点(吉尼斯和百威),等等。

结果应该是这样的:

  • 啤酒(2)
    • 吉尼斯
    • 百威啤酒

  • 葡萄酒(2)
    • 黑皮诺
    • 白仙粉黛葡萄酒

  • 威士忌(3)
    • 杰克丹尼烧烤酱
    • 制造者马克
    • 皇冠威士忌

我已经知道了如何用计数来显示“只是”分类法术语,但无法知道如何打印与每个术语相关联的所有已发布节点。我得到的是:

代码语言:javascript
复制
<?php

$vid = 1; //vocabulary id

$query = "SELECT tid, name, count
FROM (
SELECT td.tid AS tid, name, COUNT(td.tid) AS count
FROM taxonomy_term_data AS td
JOIN taxonomy_index AS tn
  ON td.tid = tn.tid
JOIN node AS n
  ON n.nid = tn.nid
WHERE td.vid = ". $vid ."
  AND n.status = 1
GROUP BY td.tid
ORDER BY count DESC
) AS t
ORDER BY name ASC";

$result = db_query($query);

print '<ul>';   
foreach($result as $term) {
if ($term->count > 0) {
  print '<li>';
  echo l($term->name, "taxonomy/term/$term->tid").' ('.$term->count.')';
  print '</li>';
}
}
print '</ul>';    

?>

这将产生以下输出:

  • 啤酒(2)
  • 葡萄酒(2)
  • 威士忌(3)

但是,如何使这些分类法术语的子级显示作为该分类法术语一部分的已发布节点?

有什么想法吗?

谢谢

EN

回答 2

Stack Overflow用户

发布于 2012-11-02 21:05:57

你绝对可以用视图来做这件事。使用“字段”类型视图。添加节点标题和“所有分类法术语”(由您的词汇表筛选)作为字段。添加指定未发布的筛选器和所需的节点类型。在视图的格式设置中,将“分组字段”设置为分类法术语。也可以指定排序。通常,我按术语排序,然后按节点标题排序。

票数 0
EN

Stack Overflow用户

发布于 2013-11-15 07:54:13

下面是逐步使用屏幕截图来创建视图的说明,

http://www.brightwebsitedesign.com/how-to-use-views-aggregator-to-create-taxonomy-term-count-block

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13198873

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档