Drupal 7 Views同设置不同显示问题排查求助
碰到这种配置看起来完全一致,但实际输出却不一样的情况确实挺闹心的,结合Drupal 7视图的特性,我整理了几个最可能的排查方向:
显示实例的独立配置差异:你导出的是视图的
Master默认配置,但block_1和block_2是两个独立的block显示实例。很可能其中一个实例在创建时没有完全继承Master的设置,而是单独修改了某些选项——比如偷偷改了分页数量、隐藏了某个字段、调整了排序规则,甚至是修改了上下文过滤器的默认值/验证逻辑。建议你分别进入两个block的编辑页面,逐行对比它们的设置(尤其是“继承自Master”的选项是否被修改)。缓存机制的独立作用:虽然你清了全站缓存,但每个视图block实例可能有自己独立的缓存配置。比如
block_1设置了按角色缓存,而block_2设置了全局缓存;或者两者的缓存过期时间不同,导致一个显示的是旧缓存内容,另一个是最新数据。可以检查每个block的“缓存设置”选项,尝试临时禁用两个block的缓存再测试。权限与访问控制差异:两个block可能被设置了不同的访问权限——比如
block_1只允许管理员查看,block_2对所有开放;或者视图关联的内容本身有访问权限差异,而两个block的“内容访问权限”设置不一致(比如一个勾选了“尊重节点访问权限”,另一个没有)。自定义代码或模块的针对性修改:如果你的站点有自定义模块或者某些 contrib 模块,它们可能通过
hook_views_query_alter、hook_views_pre_render这类钩子,针对特定视图名称(block_1或block_2)做了单独的逻辑修改。比如某个模块专门给block_1加了额外的过滤条件,而block_2不受影响。模板或格式化器的隐性差异:有时候字段配置看起来一样,但实际使用的模板或格式化器有区别。比如
block_1使用了自定义的视图模板文件(比如views-view--block-1.tpl.php),而block_2用的是默认模板;或者某个字段的格式化器设置有细微差别(比如日期显示格式、是否添加链接),这些都可能导致输出外观不同。
内容的提问来源于stack exchange,提问作者CloudSeph

