首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >创建一个相关的内容块,它通过共享多少个标记对相关内容的节点进行排序?

创建一个相关的内容块,它通过共享多少个标记对相关内容的节点进行排序?
EN

Drupal用户
提问于 2018-05-08 19:26:25
回答 1查看 417关注 0票数 0

视图高级选项卡中的选项似乎只允许:

代码语言:javascript
复制
Multiple-value handling
Filter to items that share all terms
Filter to items that share any term

我想要显示的项目,共享任何术语,但排序,通过显示项目共享最多的条款在顶部。有点像一个“相关”的排序过滤器?

EN

回答 1

Drupal用户

发布于 2018-05-10 19:39:22

您可以通过聚合来完成这一任务,但是您必须小心一些细节。

要做的第一件事是创建一个块,列出您想要的内容,并使用上下文过滤器将结果限制在使用相同术语标记的节点上。

一种非常流行的方法是通过Has taxonomy term ID上下文过滤器设置为Provide default value of Taxonomy term ID from URL (与其他适当设置的选项)。

我无法通过这种方式通过聚合来实现排序。也许会有人来解释一下这件事,是否可以,以及如何去做。

我能够用一种不同的策略来完成这个任务,这是处理实体引用时通常需要的策略。它依靠关系引入同级节点,ID作为上下文过滤器。下面是创建它的步骤:

用相同的分类法术语标记的

列表节点

  1. 创建一个类型内容视图,像往常一样将其过滤为内容类型,分类法字段不为空等。显示字段标题和包含术语的字段,在同一行显示多个值--尽管这以后不会重要,但格式为Table,只是为了便于阅读,以后可以更改它。
  2. 添加从field_yourtags引用的关系(搜索字段名)分类法术语。
  3. 使用field_yourtags添加另一个关系内容,默认设置为使用上一步中的关系
  4. 添加上下文过滤器ID (来自Content类别),并将其设置为使用第二个关系(上一步中的关系,实际上它将是“不使用关系”旁边的唯一选择)和其他选项:当筛选值不可用时,提供来自URL的默认value内容ID :当筛选值可用时,或者默认为provided指定验证条件(可选) Content 您的适当类型
  5. 添加另一个上下文过滤器ID,但这一次不要使用关系:当筛选值不可用时: :从URL提供默认的value内容ID,更多:排除,这将排除当前从列表中查看的节点。如果您想在此时检查视图中的输出,请两次输入相同的节点ID,例如,要查看节点14上的块将输出什么,请输入14/14。不要担心乘法项,我们将把它们用于聚合;)它们列出了标记与当前节点之间匹配的次数!

按通用术语计算的汇总结果

  1. 打开聚合(第三列中的Use aggregation选项设置为聚合),不要担心预览中的红色消息。所有字段和筛选器现在都具有聚合设置。只需更改分类法字段中的一个:
  2. 单击"Content: Yourtag“字段的聚合设置,并将其更改为”计数不同“。请注意,您的标记现在是如何被数字替换的,这些数字指示这些节点与当前节点有多少共同的术语!
  3. 现在,我们只需使用以下数据对视图进行排序:添加排序条件:: Yourtags不使用Relationship排序descending聚合设置:计数不同

现在,您可以将块放置在一个区域中,并检查节点的计数。 这种方法的另一个好处是,如果当前节点没有使用任何术语进行标记,它将不会列出任何内容,而使用“具有分类法术语ID”方法,您将得到所有结果。

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

https://drupal.stackexchange.com/questions/261326

复制
相关文章

相似问题

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