按分类术语过滤的 Drupal 视图

Posted

技术标签:

【中文标题】按分类术语过滤的 Drupal 视图【英文标题】:Drupal Views filtering by taxonomy term 【发布时间】:2016-03-10 20:55:11 【问题描述】:

我的内容类型包含四个术语的强制性术语引用字段:

A
B
C
D

我需要创建查询(列表),它只返回与每个术语关联的最后 4 个节点。

基本上我想在我的视图中运行这些查询:

SELECT myfield FROM mytable WHERE term_field='A' LIMIT 1;
SELECT myfield FROM mytable WHERE term_field='B' LIMIT 1;
SELECT myfield FROM mytable WHERE term_field='C' LIMIT 1;
SELECT myfield FROM mytable WHERE term_field='D' LIMIT 1;

有可能吗?

【问题讨论】:

您可以通过视图 UI 执行此操作。你有什么理由通过手动 SQL 查询来做这件事? 也许我不够清楚。我实际上想在视图 UI 中做到这一点,但我不知道怎么做。我只能添加一个过滤条件:内容:有分类术语 = A。但是如何在同一视图中添加 B、C 和 D 项?我只需要所有术语中的最后一个节点。 所以你想要一个显示四篇文章的视图,最后一篇用 A 标记,最后一篇用 B 标记,最后一篇用 C 标记,最后一篇用 D 标记,对吗?只是为了确保我在发布解决方案之前正确理解您。 正是我想要的。 【参考方案1】:

您可以通过 Views UI 和 Views 附件来完成此操作。首先,使用分类术语 A 的标准创建一个视图页面(或块)。

然后,为您想要的每个分类术语创建一个附件。 注意:确保按顺序执行。 B,然后 C,然后 D。

在附件上,像创建任何其他页面或块一样创建视图,但过滤条件更改为您想要的。 (注意:确保在更改过滤条件时将其设置为“此附件(覆盖)”。)

在附件部分,输入“附加到:页面”和“附件位置:之后”(或任何您称之为第一个视图的名称,在此示例中,我将其重命名为“A”)。

这应该会给你你正在寻找的结果。 (没有任何文章显示,因为我没有任何带有这些分类术语的标签,但您可以看到页面视图的标题和每个附件。)

【讨论】:

非常感谢您花时间和精力提供帮助。描述做得太好了!非常容易理解和遵循。就是这样。了解附件的用途。再次感谢!

以上是关于按分类术语过滤的 Drupal 视图的主要内容,如果未能解决你的问题,请参考以下文章

使用选择性覆盖的Drupal视图的术语(而非分类)的自定义分类法页面

Drupal 视图过滤使用一个分类术语并使用参数添加另一个过滤器

drupal 7 - 按分类术语分组

创建一个 Drupal 视图,加载共享任何一个分类术语的所有文章(上下文过滤器)

Drupal 8 相当于分类术语转换为术语 id 视图

Drupal 7 视图暴露的过滤器