额外区块类型 (EBT) - 全新的布局构建器体验❗
滚动
3.5.3. Views 参数(上下文过滤器 / Contextual Filters)
17/10/2025, by Ivan
Menu
- 使用 Lando 安装 Drupal
- 1. Drupal:基本功能(Basic Features)
- 2. Drupal:配置(Configuration)
- 3. Drupal:网站构建
- 4. Drupal Commerce —— Drupal 的在线商店模块
- 5. Drupal 与 SEO
- 6. Drupal:主题开发
- 7. Drupal:高级主题开发。
- 9. Drupal 模块开发
- 解耦式 Drupal:基于 Drupal 构建后端(Drupal Decoupled. Building Backend on Drupal)
- 旧文章
在开发中,我们经常需要显示与特定用户相关的区块(例如该用户的文章或公告),或者在节点页面中显示该节点的作者信息。
然而,每个用户都有自己的一组公告,每个节点也都有各自的作者,因此这些区块必须根据当前节点或用户动态变化。为了实现这种效果,我们可以在 Views 中使用上下文过滤器(Contextual Filters)。
现在,让我们为公告(announcement)添加一个过滤器,使其在广告页面上只显示与当前公告相关的数据。我们将按 nid 字段过滤。下面我们来看看这个过滤器的工作原理。
在 Drupal 中,每个节点的 URL 通常如下:
/node/13
其中 13
就是节点的 nid(Node ID)。我们要告诉 Views:通过上下文过滤器(Contextual Filter)按 nid 过滤节点数据。这样,在每个节点页面上,Views 将显示对应节点的数据。
在 Views 编辑器中,添加一个 nid 过滤器:
接着,我们需要为上下文过滤器选择默认操作。在本例中,选择:
Provide default value → Content ID from URL
现在可以通过 预览(Preview) 功能来测试过滤器的效果。例如,我有一个公告节点的 nid 为 7,那么在预览表单中输入 7
并点击预览按钮:
这样,视图将只显示与节点 ID 为 7 的公告相关的内容。