为了账号安全,请及时绑定邮箱和手机立即绑定

Drupal 8 - template_preprocess_node 不工作

Drupal 8 - template_preprocess_node 不工作

PHP
红糖糍粑 2021-12-03 16:07:12
我创建了一个具有“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() 不起作用。


查看完整回答
反对 回复 2021-12-03
  • 1 回答
  • 0 关注
  • 180 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信