在Drupal 7块中,我试图在无序列表中列出特定词汇表的分类术语,并将作为子级的任何已发布节点作为分类法术语的一部分。
示例:
假设我有一个名为“产品”的词汇,它的分类术语是啤酒、葡萄酒和威士忌。比如说,啤酒有两个内容节点(吉尼斯和百威),等等。
结果应该是这样的:
我已经知道了如何用计数来显示“只是”分类法术语,但无法知道如何打印与每个术语相关联的所有已发布节点。我得到的是:
<?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>';
?>这将产生以下输出:
但是,如何使这些分类法术语的子级显示作为该分类法术语一部分的已发布节点?
有什么想法吗?
谢谢
发布于 2012-11-02 21:05:57
你绝对可以用视图来做这件事。使用“字段”类型视图。添加节点标题和“所有分类法术语”(由您的词汇表筛选)作为字段。添加指定未发布的筛选器和所需的节点类型。在视图的格式设置中,将“分组字段”设置为分类法术语。也可以指定排序。通常,我按术语排序,然后按节点标题排序。
发布于 2013-11-15 07:54:13
下面是逐步使用屏幕截图来创建视图的说明,
http://www.brightwebsitedesign.com/how-to-use-views-aggregator-to-create-taxonomy-term-count-block
https://stackoverflow.com/questions/13198873
复制相似问题