logo

额外区块类型 (EBT) - 全新的布局构建器体验❗

额外区块类型 (EBT) - 样式化、可定制的区块类型:幻灯片、标签页、卡片、手风琴等更多类型。内置背景、DOM Box、JavaScript 插件的设置。立即体验布局构建的未来。

演示 EBT 模块 下载 EBT 模块

❗额外段落类型 (EPT) - 全新的 Paragraphs 体验

额外段落类型 (EPT) - 类似的基于 Paragraph 的模块集合。

演示 EPT 模块 滚动

滚动

基于 Zen 主题创建自定义 Drupal 主题

14/10/2025, by Ivan

如果你决定不使用已经做好的 Drupal 主题,而是想自己创建一个主题,或者把模板从 Wordpress 或 Joomla 移植过来,那么你需要从零开始编写主题。不过,现在已经有一些现成的主题框架可以为你的主题提供基础结构。

Zen - http://drupal.org/project/zen

Fusion - http://drupal.org/project/fusion

Adaptive Theme - http://drupal.org/project/adaptivetheme

Omega - http://drupal.org/project/omega
最常用的主题框架是 Zen 主题。它是一个非常方便的主题框架。实际上,它是一个为 Drupal 提供的、已经准备好的 “裸版” 三栏布局主题,能够自动生成我们所需的各种 CSS 类。Zen 主题的另一个优点在于内容区域的排列顺序:内容块在菜单和侧边栏之前。这种结构有利于 SEO(搜索引擎优化),因为搜索引擎会首先看到主要内容,而后才是重复性内容,如菜单、存档和其他区块。
下面是 Zen 主题的默认外观:

Drupal zen theme

我建议基于 Zen 来制作你自己的网站主题。首先,从 drupal.org 下载 Zen 主题。然后创建文件夹 sites/all/themes(如果还没有的话),并将 Zen 文件夹复制到该目录中。

Drupal zen theme

接下来,我们需要基于 Zen 创建一个子主题(sub-theme)。为什么要创建子主题,而不是直接修改 Zen 主题本身? 这样做的原因是:我们始终可以保留一个干净的备份版本,以便在修改导致问题时恢复到原始状态。此外,这样也方便他人了解你的主题是如何构建的。

复制文件夹 STARTERKIT 并将副本重命名为你的子主题名称,例如我这里用 sitemade。 然后在你的主题文件夹中找到文件 STARTER.info.txt,并将其重命名为 你的主题名.info,例如 sitemade.info

Drupal book theming

要启用新创建的子主题,请进入后台启用 Zen Sub-theme Starter Kit(主题名称可以在 .info 文件中修改)。

Zen starter kit

现在,网站上已经启用了我们自己的子主题。

Zen sub theme

接着,点击 “turn off this feature” 按钮,在主题设置中关闭 “Rebuild theme registry on every page”。

现在我们拥有了一个“裸版”的主题。接下来,需要决定网站的宽度是固定(一般为 900–1000 像素)还是自适应(全屏流式布局)。 如果固定宽度能满足你的需求,则无需修改,因为默认宽度为 960 像素。 若要将网站设置为自适应宽度,请进入你子主题的 css 文件夹,并将文件 layout-fixed.css 的内容替换为 layout-liquid.css 的内容。

Drupal layout fixed

请记住,STARTERKIT 文件夹中保存了所有这些文件的原始副本,你可以随时恢复默认设置。

最后一步:将 Zen 模板文件夹 sites/all/themes/zen/templates 复制到你的主题目录中 sites/all/themes/zen/你的新主题名/templates。 虽然我们也可以直接修改原始模板文件夹中的文件,但最好为其保留一个备份副本。