我创建了一个具有“Teaser Full Width”视图模式的文章列表视图。该页面看起来不错,并列出了文章。当我尝试使用 编辑某些内容时template_preprocess_node(&$variables),挂钩在 Teaser Full Width 中不起作用。但是当我单击任何文章时,在单个节点中的工作相同。<?phpfunction templatename_preprocess_node(&$variables) { kint($variables);die('test');}?>我已经在 StackOverflow 中解决了不同的问题。开发模块已启用。有条件试过 if ($variables['view_mode'] == 'teaser_full_width'){ ... }尝试print_r代替kint.尝试通过更改max_allowed_packet.已templatename启用验证并设置为默认值。缓存已清除。(文章列表页面)模板文件:-node--article--teaser-full-width.html.twigtemplate_preprocess_html 在此页面上工作正常。template_preprocess_node 不在此页面上工作。(文章单页)模板文件:-node--article--full.html.twig两个钩子都工作正常。有谁知道问题是什么?我的 Drupal 版本是 8.6.10。
1 回答
至尊宝的传说
TA贡献1789条经验 获得超10个赞
根据 drupal 的文档 template_preprocess_node() 是节点模板的钩子。由于视图列表页面包含节点但不是节点页面,因此 template_preprocess_node() 在那里不起作用。但是,它仍然是一个 html 页面,因此 template_preprocess_html() 在那里工作。
简单来说,您的“文章列表视图”是一个页面而不是节点,因此 template_preprocess_node() 不起作用。
- 1 回答
- 0 关注
- 180 浏览
添加回答
举报
0/150
提交
取消