【发布时间】:2017-10-01 23:04:18
【问题描述】:
我已经成功使用了预处理页面挂钩,例如:
function mytheme_preprocess_page__node_front(&$variables) {
...
}
和
function mytheme_preprocess_page__node_12(&$variables) {
...
}
分别与名为 page--front.html.twig 和 page--12.html.twig 的自定义模板相关。
我正在尝试为名为 Video 的内容类型实现相同的钩子和模板配对。我知道不同之处在于我的示例是针对特定页面的自定义模板,而我的目标是针对整个内容类型的自定义模板,但是我得到了一个名为 node--video.html.twig 的自定义模板,它可以作为所有视频页面的模板。但是,当我尝试根据此模板名称编写挂钩时:
function mytheme_preprocess_node__video(&$variables) {
...
}
这不起作用。我认为我要么无法定义这样的钩子,要么我只是错误地命名它。我发现了一些与此有些相关的线程,例如this,这似乎暗示我需要为所有节点定义一个钩子,然后编写一个单独处理每种类型的 if 语句。 所以.......
最后一个问题:我可以为整个内容类型定义一个钩子吗?如果可以,我做错了什么?
【问题讨论】:
-
通常
template_preprocess_node__NODE_TYPE和template_preprocess_node__NODE_TYPE__VIEW_MODE现在应该可以正常工作了。因为我总是像那样使用特定的节点类型预处理钩子。
标签: drupal-8 drupal-hooks drupal-templates