You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 11:10:02