Drupal 7如何添加自定义页面模板至内容创建选项列表?
在Drupal 7中实现自定义页面模板并添加到「添加内容」列表
首先得明确:Drupal 7里「添加内容」页面的选项其实是内容类型,要实现类似WordPress的自定义页面模板效果,有两种常见方式——一种是创建新的内容类型(对应你示例里的Crazy Page)并绑定自定义模板;另一种是给现有内容类型(比如Basic Page)添加模板选择功能,让用户在创建单页时选择不同模板。下面分别说明:
方式一:创建新内容类型+绑定自定义模板(对应示例中的Crazy Page选项)
这种方式会在「添加内容」里新增一个选项,用户选择它创建的内容会自动使用你的自定义模板。
步骤1:创建新内容类型
- 登录Drupal后台,进入「结构」→「内容类型」→「添加内容类型」
- 填写基本信息:
- 名称:比如
Crazy Page - 类型:自动生成
crazy_page(机器名,记下来后面要用) - 描述:可以写“使用自定义疯狂模板的页面”
- 名称:比如
- 根据需求设置字段:比如保留默认的「标题」,添加「正文」字段(和Basic Page一致),或者自定义专属字段
- 保存内容类型,此时「添加内容」页面就会出现
Crazy Page选项了
步骤2:创建自定义模板文件
Drupal的模板命名遵循特定规则,我们需要为crazy_page内容类型创建对应的模板:
- 进入你的主题目录(比如
sites/all/themes/[你的主题名]) - 创建模板文件,命名为
page--node--crazy-page.tpl.php(注意机器名里的下划线要换成短横线)- 规则说明:
page--node--[内容类型机器名].tpl.php是Drupal识别内容类型专属页面模板的标准格式
- 规则说明:
- 复制主题默认的
page.tpl.php内容到新文件里,然后根据需求修改HTML结构、样式,比如添加特殊头部、自定义侧边栏布局等 - 清除Drupal缓存(「配置」→「性能」→「清除所有缓存」),让系统识别新模板
现在,当你创建并查看Crazy Page类型的内容时,就会自动使用这个自定义模板。
方式二:给现有内容类型添加模板选择功能(类似WordPress单页选模板)
如果不想新增内容类型,而是想让用户在创建Basic Page时选择不同模板,可以用这种方法:
步骤1:给Basic Page添加模板选择字段
- 进入「结构」→「内容类型」→「Basic Page」→「管理字段」
- 添加新字段:
- 字段类型:列表(文本)
- 字段标签:比如
页面模板 - 机器名:
field_page_template(记下来后面要用)
- 设置选项值:比如
default|默认模板crazy|疯狂模板
- 保存字段设置,并调整字段显示位置(比如放在「标题」下方)
步骤2:创建自定义模板文件
- 在主题目录创建两个模板:
- 保留原有的
page--node--page.tpl.php作为默认模板 - 创建
page--node--page--crazy.tpl.php作为自定义疯狂模板(复制默认模板内容后修改布局)
- 保留原有的
步骤3:通过预处理函数切换模板
- 在主题的
template.php文件中添加以下代码:
function [你的主题名]_preprocess_page(&$variables) { // 检查当前节点是Basic Page,并且有模板字段值 if (isset($variables['node']) && $variables['node']->type == 'page' && isset($variables['node']->field_page_template['und'][0]['value'])) { $template = $variables['node']->field_page_template['und'][0]['value']; // 如果选择了crazy模板,替换模板文件 if ($template == 'crazy') { $variables['theme_hook_suggestions'][] = 'page__node__page__' . $template; } } }
- 替换代码中的
[你的主题名]为实际的主题机器名 - 清除Drupal缓存
现在,当你创建Basic Page时,就能在编辑页面选择「页面模板」,保存后系统会自动使用对应的模板。
注意事项
- 模板文件命名一定要符合Drupal的规范,否则系统无法识别
- 每次新增或修改模板文件后,必须清除缓存才能生效
- 如果使用子主题,模板文件要放在子主题目录下,不要修改父主题文件
内容的提问来源于stack exchange,提问作者Angie
相关产品推荐
相关产品推荐

