当前位置: 首页>>技术解读>>正文


视图上下文过滤器分类名称

webfans 技术解读 , , , 去评论

问题描述

我正在为具有分类字段的自定义内容类型的视图添加上下文过滤器。上下文过滤器允许我按分类标签ID过滤,但不能按分类标签名称过滤。与分类中给定标签的含义:

1  | test1
2  | another tag
3  | taggy
......
99 | coolness

我可以生成一个上下文过滤器,它将解析像http://mydrupal/myview/3这样的URL,以显示已用taggy标记的所有内容但是,URL需要通过标签名称而不是标签id将参数传递给查找,例如,http://mydrupal/myview/taggy以查看标记的所有内容使用taggy如何实现这一目标?

最佳解决思路

我假设你已经添加了Content: Has taxonomy term ID上下文过滤器。您可以通过调整Specify validation criteria设置将分类术语名称与此过滤器一起使用。这是一个截图:

7,taxonomy-terms,views,drupal

确保选中Specify validation criteria,您将看到更多选项。在Validator下选择Taxonomy term。您可以选择使用词汇表来允许。在Filter value type下选择Term name converted to Term ID并选中Transform dashes in URL to spaces in term name filter values复选框。

次佳解决思路

皮肤 cat 的另一种方法:

我需要实际的分类术语名称查询不转换为术语ID。

以下是如何查询作为上下文过滤器传递的分类术语名称:

To get the name you must add a relationship, either on the field or the generic taxonomy relationship. Then you can add any fields for that term as a contextual filter, including the name.

https://www.drupal.org/node/1156022#comment-4469378

第三种解决思路

对于D8,请参阅Taxonomy term name as contextual filter for viewhttps://www.drupal.org/node/2645442

参考资料

本文由朵颐IT整理自网络, 文章地址: https://duoyit.com/article/2635.html,转载请务必附带本地址声明。