Drupal 8,两个上下文过滤器,如何只使用第二个?
Posted
技术标签:
【中文标题】Drupal 8,两个上下文过滤器,如何只使用第二个?【英文标题】:Drupal 8, two contextual filters, how to only use the second one? 【发布时间】:2018-02-05 19:59:05 【问题描述】:我有两种分类法:“颜色”和“形状”。 我有一个名为“object”的内容类型,它有一个“color”字段和一个“shape”字段。
然后我有一个简单的视图,它列出了“对象”类型的内容,它有两个上下文过滤器:一个用于“颜色”,一个用于“形状”。
如果我转到 /my-view/1,我会得到所有颜色为“蓝色”的对象的列表(术语 id 1)
如果我转到 /my-view/1/5,我会得到一个包含所有颜色为“蓝色”且形状为“圆形”的对象的列表。
到目前为止一切顺利。
但是,如果我想列出所有形状为“圆形”的对象怎么办?换句话说,我只想指定第二个上下文过滤器。显然 /my-view//5 不起作用,那怎么办呢?
(注意:我实际上是在尝试通过调用 views_get_view_result("objects", "default", 1, 5) 以编程方式执行此操作。同样,我可以调用 views_get_view_result("objects", "default", 1 ),但我不知道如何仅使用第二个上下文过滤器来调用它。
(注2:我使用的是Drupal 8,但实际上与Drupal 7相同)
【问题讨论】:
【参考方案1】:没关系,尽管我找了几天的答案,但我在发布后 5 分钟就找到了...
我需要在上下文过滤器中指定一个“例外”——例如“全部”。然后我可以去/my-view/all/5,或者调用views_get_view_result("objects", "default", "all", 1)
【讨论】:
以上是关于Drupal 8,两个上下文过滤器,如何只使用第二个?的主要内容,如果未能解决你的问题,请参考以下文章
如果未定义第二个过滤器,则具有 2 个上下文过滤器的 Drupal 7 视图不起作用
Drupal 7 视图 - 如何将上下文过滤器与常规过滤器(使用 OR)结合起来?