Drupal 8/9中如何基于节点引用配置views block实现关联课程筛选
操作步骤
步骤1:新建View基础配置
- 进入 Drupal 后台
结构>视图>添加视图 - 基础设置项:显示内容选择
courses内容类型,勾选创建区块,区块显示格式可根据需求选内容/字段模式,按需设置每页显示项目数 - 点击
保存并编辑进入视图详情配置页
步骤2:添加上下文过滤器(核心配置)
该配置用于从当前访问的page页面读取字段值,作为筛选courses的条件:
- 在视图配置页的
高级区域,找到上下文过滤器选项,点击添加 - 第一个过滤器选择
Content: course type(即courses内容类型的课程类型分类引用字段),配置规则:- 当过滤器值不可用时,选择
提供默认值,默认值类型选从当前页面加载的内容的字段 - 字段选择
course type(对应pages内容类型的同名字段) - 勾选
将过滤值转换为分类术语ID
- 当过滤器值不可用时,选择
- 第二个过滤器选择
Content: semester(即courses内容类型的学期分类引用字段),配置规则和上一步完全一致,仅对应字段替换为semester即可 - 保存两个上下文过滤器的配置
步骤3:异常场景配置(可选)
- 若需要在无匹配courses时隐藏整个区块,可在上下文过滤器的
当过滤器值不可用配置项中,额外勾选如果过滤器值不存在,隐藏视图 - 也可在
无结果行为中自定义无匹配时的提示文本,比如“暂无匹配的课程”
步骤4:放置区块到页面
- 进入
结构>区块布局,找到刚创建的views block,放置到对应主题的目标展示区域 - 区块可见性配置:切换到
内容类型选项卡,仅勾选pages内容类型,避免在其他无关页面加载该区块
效果验证
- 编辑一个pages节点,设置course type为Literature、semester为Summer,保存后访问该页面,可看到ENG 101的课程展示
- 编辑另一个pages节点,设置course type为Math、semester为Fall,访问时可看到MTH 101的课程展示
内容的提问来源于stack exchange,提问作者Parker McCrary
相关产品推荐
相关产品推荐

