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 8 根据当前路线更改菜单链接

Drupal 7 视图 - 如何将上下文过滤器与常规过滤器(使用 OR)结合起来?

Drupal 7 查看上下文过滤器或逻辑

如何在 Drupal 7 中的 URL 中获取视图(上下文过滤器)中的结果

如何在drupal 7视图中按角色和用户ID显示用户评论