跳转到主要内容
你行网

Main navigation

  • 首页
  • Drupal
  • 编程与开发
  • 数据库
  • 操作系统与应用
  • 服务器与运维
  • 社区
User account menu
  • 登录

面包屑

  1. 首页

Drupal 11 主题制作教程

由 hrs, 13 八月, 2025

Drupal 11 主题制作是一个将设计与功能结合的过程,以下是一个全面的教程指南:

1. 准备工作
系统要求
确保已安装 Drupal 11

PHP 8.1 或更高版本

Composer (用于依赖管理)

创建主题目录
在 /themes/custom/ 下创建你的主题文件夹,例如 mytheme

2. 基本主题结构

mytheme/
├── mytheme.info.yml       # 主题元数据
├── mytheme.libraries.yml  # CSS/JS 资源
├── mytheme.theme          # PHP 逻辑
├── templates/            # Twig 模板
├── src/                  # PHP 类
│   └── Plugin/
│       └── Block/        # 自定义区块
├── assets/
│   ├── css/
│   ├── js/
│   └── images/
└── config/               # 配置架构
   └── install/


3. 创建主题信息文件 (mytheme.info.yml)


name: 'My Theme'
type: theme
description: 'Custom Drupal 11 theme'
core_version_requirement: ^11
base theme: olivero  # 或 classy/stark
libraries:
 - mytheme/global-styling
regions:
 header: 'Header'
 content: 'Content'
 sidebar: 'Sidebar'
 footer: 'Footer'


4. 添加 CSS 和 JavaScript (mytheme.libraries.yml)


global-styling:
 version: 1.0
 css:
   theme:
     assets/css/style.css: {}
 js:
   assets/js/script.js: {}
 dependencies:
   - core/jquery
   - core/drupal


5. 创建基础模板
page.html.twig (在 templates 目录中)


<!DOCTYPE html>
<html{{ html_attributes }}>
 <head>
   <head-placeholder token="{{ placeholder_token }}">
   <title>{{ head_title|safe_join(' | ') }}</title>
   <css-placeholder token="{{ placeholder_token }}">
   <js-placeholder token="{{ placeholder_token }}">
 </head>
 <body{{ attributes }}>
   {{ page_top }}
   {{ page }}
   {{ page_bottom }}
   <js-bottom-placeholder token="{{ placeholder_token }}">
 </body>
</html>


6. 主题开发最佳实践
使用 Twig 调试
在 sites/default/services.yml 中启用调试:


parameters:
 twig.config:
   debug: true
   auto_reload: true
   cache: false


子主题创建
如果你想基于现有主题:


name: 'My Subtheme'
type: theme
description: 'Subtheme of Olivero'
core_version_requirement: ^11
base theme: olivero


7. 响应式设计
在 mytheme.libraries.yml 中添加:


responsive:
 css:
   theme:
     assets/css/responsive.css:
       media: 'all and (max-width: 768px)'


8. 主题预处理函数 (mytheme.theme)



<?php
/**
* Implements hook_preprocess_page().
*/
function mytheme_preprocess_page(&$variables) {
 // 添加自定义变量到模板
 $variables['custom_variable'] = 'Hello Drupal 11!';
}


9. 编译前端资源 (可选)
如果你使用 Sass/LESS 等预处理器:

安装 Node.js 和 npm/yarn

创建 package.json 文件

设置构建脚本

10. 启用主题
访问 /admin/appearance

找到你的主题并点击"安装并设为默认"

高级主题功能
创建自定义区块
在 src/Plugin/Block/ 下创建 PHP 类

主题设置表单
实现 hook_form_system_theme_settings_alter()

使用布局构建器
创建自定义布局模板和样式

调试工具
使用 Devel 模块

Twig 调试工具 ({{ dump(variable) }})

Chrome PHP 调试器

性能优化
聚合 CSS/JS

使用缓存

优化图片资源

延迟加载非关键资源

这个教程涵盖了 Drupal 11 主题制作的基础知识。随着你的需求增长,可以探索更高级的主题技术如组件化主题、使用 Storybook 等前端工具集成。

  • 登录或注册以发表评论
  • 104 次浏览
内容类型分类
技术文章
文章归类
drupal

文章标签

  • drupal 11

评论

最新文章

  • 内容审核通知 content_moderation_notifications 模块简介
  • 调度程序 scheduler 模块简介
  • 工作流当中的草稿,已发布,很好理解,已归档是怎么理解。
  • 你行网 https://www.dwoke.com seo 关键词
  • brew 是什么命令
  • drupal 9 或 drpal 10 国内内容分享模块 Will Nice social share
  • Views Slideshow - Views Vanilla JavaScript Slideshow (VVJS) 简介和安装方法
  • drupal 11 安装statistics 统计模块
  • drupal11 扩展中找不到Statistics模块
  • drupal11 设置中的“总结摘要”和“切边的” 有什么区别

标签云

adsenseAIapacheaptbadblocksbreadcrumbbrewcentoscertbotckeditorcommandcomposercookiecsharpCSScurlC语言DDEVdiffdnsdockerDreamweaverDrupaldrupal 7drupal 8drupal 9drupal10drupal 11drushExcelfirewalldfirmwareflameshotformgimpgitgzipHTMLHTML5httpdhttp验证inputipjavaJavaScriptJavaSrciptkernelKVMLinuxmavenmbstringmod_expires 模块Mysqlnerdtreenetstatnetworknginxnpmpasswordphpphpmyadminphp扩展RFIDRSSselinuxSEOsharesimple_adsensesshsslStatisticssuperfishsurroundtagcloudstitleubuntuuploadprogressvimVPNVUEWireGuardwpsxdebugyoutubeyumzip主题(theme)二进制五笔分类术语压缩解压哈希值声音字段密码工作流快捷键摄影权限果树种植标签优化模块(module)源地址版本号电子秤电脑基础电脑技巧短信验证端口简介算法网站备份网站运营翻译英语表单视图(views)计算机基础赚钱超五类线网线邮件验证重定向重定向,301错误颜色

相关文章

  • drupal11 设置中的“总结摘要”和“切边的” 有什么区别
  • ddev 基本命令中文对照表
  • RSS源 是什么,有什么作用,如何使用。
  • 使用git 克隆drupal 开发版本和修改版本。
  • ddev 安装drush 错误和解决方案
  • 【Drupal 开发实战】告别环境配置噩梦:DDEV 使用全攻略
  • 因权限问题导致drupal cms 无法正常安装,那么该如何解决这个问题
  • kvm虚拟机启动失败:default网络未激活
  • ubuntu 安装kvm 虚拟机
  • foreach 是 PHP 循环语句使用方法
RSS源

关于我们

  • 你行网简介
  • 关于我们
  • 版权声明

网站相关

  • 社区论坛
  • 网址导航
  • 网站地图
  • 联系我们

友情链接

  • 英文学习

友情链接2

  • drupal 大学
  • 水滴间
  • 爱码网
  • Apache

友情链接3

  • MySQL
  • php
  • drupalcode

友情链接4

  • Drupal 中国
  • Drupal 老葛
  • 宁浩网
  • drupal 台湾
Copyright © 2019 - 2021 你行网 版权所有  粤ICP备19072650号-1