首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将Twig模板添加到编程创建的自定义内容类型中?

问如何将Twig模板添加到编程创建的自定义内容类型中?
EN

Drupal用户
提问于 2016-09-05 05:52:47
回答 1查看 696关注 0票数 0

我创建了一个实现内容类型的模块。如何为该内容类型以及挑逗和全面查看模式设置自定义模板文件?我需要使用我的模块文件夹中的模板文件,而不是网站当前使用的主题。

这些是关于我的模块的一些细节。

  • 模块名称:我的模块
  • 内容类型名称:我的内容
  • Teaser模板名:节点--我的内容--teaser.html.twig
  • 完整模板名称:节点--我的内容--Ful.html.twig
  • 字段模板名: Field -节点--field-my-field-my-content.html
EN

回答 1

Drupal用户

回答已采纳

发布于 2016-09-05 06:17:07

节点模式: node--型节点--视点模式.html.twig基本模板: node.html.twig (基本位置:核心/模块/节点/模板/node.html.twig)主题挂钩建议基于这些因素,从最具体的模板到最少。Drupal将使用它找到的最具体的模板:

  1. node--nodeid--viewmode.html.twig
  2. node--nodeid.html.twig
  3. node--type--viewmode.html.twig
  4. node--type.html.twig
  5. node--viewmode.html.twig
  6. node.html.twig

注意,内容类型的机器名称中的下划线被连字符替换。

来源:细枝模板命名约定

在你的情况下,这是3号。

示例:

node--article--teaser.html.twig

如果要将模板放置在模块中,请参阅:自定义内容类型的模板

在你的例子中,这个应该是这样的:

代码语言:javascript
复制
/**
 * Implements hook_theme().
 */
function my_module_theme() {
  return [
    'node__my_content__teaser' => [
      'base hook' => 'node',
    ],
    'node__my_content__full' => [
      'base hook' => 'node',
    ],
  ];

根据我的经验,您只需要base hook。Drupal将自行发现正确的模板名称和路径。您必须小心主题钩子中的下划线(_),它们应该与模板名称的连字符(-)完全匹配。

票数 1
EN
页面原文内容由Drupal提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://drupal.stackexchange.com/questions/213713

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档