核心概念:理解织梦模板系统
在动手之前,你必须先理解织梦的模板机制,否则会寸步难行。
-
模板文件的位置:
- 织梦的模板文件存放在
/templets/目录下。 - 默认模板文件夹是
/templets/default/。强烈建议你不要直接修改默认模板,而是复制一份,重命名(mytheme),然后在后台“系统” -> “系统基本参数” -> “核心设置” 中,将“默认模板目录”修改为你的新目录名(如mytheme)。
- 织梦的模板文件存放在
-
首页模板文件:
- 首页的模板文件通常是
index.htm,它位于你的主题目录下(如/templets/mytheme/index.htm)。
- 首页的模板文件通常是
-
模板标签:
- 织梦使用一套专属的标签来调用数据库内容,这些标签以
{dede:}开头和结尾。 - 最常用的首页标签:
{dede:arclist}: 调用文章列表,用于调用指定栏目、指定数量的文章。{dede:channel}: 调用栏目列表,用于显示网站导航栏。{dede:flink}: 调用友情链接。{dede:global}: 调用全局变量,如网站标题、公司名称等。{dede:myad}: 调用广告位。
- 织梦使用一套专属的标签来调用数据库内容,这些标签以
首页布局的详细步骤
第1步:规划新布局(设计稿)
在修改任何代码之前,先用纸笔画出或用设计工具(如Figma, Sketch, Photoshop)设计出你想要的首页布局。
一个典型的企业网站首页布局可能包括:
- 顶部 (Header)
- Logo
- 主导航菜单
- 搜索框
- 联系方式/登录按钮
- 幻灯片/轮播图
展示重要新闻、产品或活动。
- 产品/服务展示区
以网格或列表形式展示核心产品或服务。
- 新闻资讯区
分为“公司新闻”和“行业动态”等栏目,显示最新文章列表。
- 关于我们/公司简介
一段简短的文字介绍,配以图片。
- 数据展示/优势特色
用数字或图标展示公司成就(如:10年经验,1000+客户)。
- 底部 (Footer)
版权信息、备案号、友情链接、详细地址等。
第2步:准备素材
准备好你的新布局所需的所有素材:
- Logo (
.png,.jpg) - 背景图
- 幻灯片图片
- 产品图片
- 字体文件(如果需要特殊字体)
第3步:修改 index.htm 文件
这是最核心的一步,我们将用HTML和织梦标签来构建你的新布局。
构建整体框架
打开 /templets/yourtheme/index.htm,文件最外层通常是一个 <div>,我们用它来包裹整个页面内容。
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">{dede:global.cfg_webname/}</title>
<!-- 引入CSS文件,我们新建一个 style.css -->
<link rel="stylesheet" href="/templets/yourtheme/css/style.css">
</head>
<body>
<!-- 顶部区域 -->
<header class="main-header">
<!-- Logo和导航将放在这里 -->
</header>
<!-- 幻灯片区域 -->
<section class="slider">
<!-- 幻灯片代码将放在这里 -->
</section>
<!-- 产品展示区 -->
<section class="products">
<div class="container">
<h2>我们的产品</h2>
<!-- 产品列表调用代码 -->
</div>
</section>
<!-- 新闻资讯区 -->
<section class="news">
<div class="container">
<!-- 新闻列表调用代码 -->
</div>
</section>
<!-- 关于我们 -->
<section class="about-us">
<!-- 关于我们内容 -->
</section>
<!-- 底部区域 -->
<footer class="main-footer">
<!-- 版权信息和友情链接 -->
</footer>
<!-- 引入JavaScript文件 -->
<script src="/templets/yourtheme/js/slider.js"></script>
</body>
</html>
使用织梦标签填充内容
我们用织梦标签替换掉上面的注释部分。
-
调用网站Logo和名称:
<a href="/">{dede:global.cfg_webname/}</a> <!-- 如果有logo图片,可以这样 --> <a href="/"><img src="{dede:global.cfg_logo/}" alt="{dede:global.cfg_webname/}" /></a>注意:
cfg_logo需要在后台“系统基本参数” -> “核心设置”中上传并配置。 -
调用主导航栏目:
<nav> <ul> {dede:channel type='top' row='8'} <li><a href="[field:typelink/]">[field:typename/]</a></li> {/dede:channel} </ul> </nav>type='top'表示只调用顶级栏目。row='8'表示调用8个栏目。[field:typelink/]是栏目链接,[field:typename/]是栏目名称。
-
调用文章列表: 这是
{dede:arclist}标签最强大的应用,假设我们要调用“产品中心”栏目的前6个产品。<section class="products"> <div class="container"> <h2>产品中心</h2> <div class="product-list"> {dede:arclist typeid='2' row='6' titlelen='30' imgwidth='220' imgheight='220'} <div class="product-item"> <a href="[field:arcurl/]"> <img src="[field:litpic/]" alt="[field:title/]" /> <h3>[field:title/]</h3> <p>[field:description function='cn_substr(@me, 100)'/]</p> </a> </div> {/dede:arclist} </div> </div> </section>typeid='2': 关键参数,指定调用哪个栏目下的文章,你需要在后台“栏目管理”中找到“产品中心”栏目的ID。row='6': 显示6条。titlelen='30': 标题长度限制为30个字符。imgwidth和imgheight: 自动缩略图尺寸。[field:litpic/]: 文章缩略图。[field:arcurl/]: 文章链接。[field:description function='cn_substr(@me, 100)'/]: 调用文章摘要,并用cn_substr函数截取前100个字符。
-
调用友情链接:
<div class="friend-links"> {dede:flink type='text'/} <!-- type='text' 是文字链接,type='image' 是图片链接 --> </div>
第4步:编写CSS样式 (style.css)
布局是骨架,CSS是血肉,它负责让页面变得美观。
在 /templets/yourtheme/css/ 目录下创建 style.css 文件。
/* style.css */
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
body {
font-family: 'Microsoft YaHei', sans-serif;
line-height: 1.6;
color: #333;
}
.container {
width: 1200px;
margin: 0 auto;
padding: 20px;
}
/* 头部样式 */
.main-header {
background: #fff;
box-shadow: 0 2px 5px rgba(0,0,0,0.1);
padding: 15px 0;
}
.main-header .container {
display: flex;
justify-content: space-between;
align-items: center;
}
/* 导航样式 */
.main-header nav ul {
list-style: none;
display: flex;
}
.main-header nav ul li {
margin-left: 20px;
}
/* 产品列表样式 */
.product-list {
display: flex;
flex-wrap: wrap;
justify-content: space-between;
}
.product-item {
width: 32%;
margin-bottom: 20px;
border: 1px solid #eee;
padding: 10px;
text-align: center;
}
.product-item img {
max-width: 100%;
height: auto;
}
/* 新闻列表样式 */
.news-list .news-item {
padding: 15px 0;
border-bottom: 1px dashed #ccc;
}
.news-list .news-item h3 {
font-size: 18px;
margin-bottom: 5px;
}
.news-list .news-item h3 a {
color: #333;
text-decoration: none;
}
.news-list .news-item h3 a:hover {
color: #0066cc;
}
/* 底部样式 */
.main-footer {
background: #333;
color: #fff;
text-align: center;
padding: 20px 0;
margin-top: 40px;
}
第5步:添加交互效果(如轮播图)
如果布局中有轮播图,你需要使用JavaScript。
- 准备HTML结构:
在
<section class="slider">中添加轮播图的HTML。 - 编写CSS: 为轮播图写样式,包括图片容器、指示器等。
- 编写JavaScript: 在
/templets/yourtheme/js/目录下创建slider.js,实现轮播逻辑(自动播放、点击切换等),你可以自己写,也可以使用成熟的库,如 Swiper.js 或 Bootstrap Carousel,它们更容易实现且效果更好。
使用Swiper.js的示例:
- 引入Swiper的CSS和JS (可以从官网下载或使用CDN)。
<!-- 在 <head> 中 --> <link rel="stylesheet" href="/templets/yourtheme/css/swiper-bundle.min.css"> <!-- 在 <body> 底部 --> <script src="/templets/yourtheme/js/swiper-bundle.min.js"></script>
- 修改轮播图区域的HTML:
<section class="swiper mySwiper"> <div class="swiper-wrapper"> <!-- 幻灯片1 --> <div class="swiper-slide"> <img src="/templets/yourtheme/images/slide1.jpg" alt="幻灯片1"> </div> <!-- 幻灯片2 --> <div class="swiper-slide"> <img src="/templets/yourtheme/images/slide2.jpg" alt="幻灯片2"> </div> <!-- ...更多幻灯片 --> </div> <div class="swiper-pagination"></div> <div class="swiper-button-next"></div> <div class="swiper-button-prev"></div> </section> - 初始化Swiper:
在你的自定义JS文件(如
main.js)或<script>标签中添加:var swiper = new Swiper(".mySwiper", { loop: true, autoplay: { delay: 2500, disableOnInteraction: false, }, pagination: { el: ".swiper-pagination", clickable: true, }, navigation: { nextEl: ".swiper-button-next", prevEl: ".swiper-button-prev", }, });
高级技巧与注意事项
-
响应式布局:
- 现在的网站必须适配手机,使用 CSS媒体查询 是最简单的方法。
- 在你的
style.css中添加:@media (max-width: 768px) { .container { width: 95%; } .product-item { width: 48%; /* 在手机上变成两列 */ } .main-header .container { flex-direction: column; } }
-
使用“首页调用”:
- 对于“关于我们”这种固定文本内容,最简单的方法是:
- 在后台“核心” -> “频道模型” -> “添加新频道模型”中创建一个名为“首页内容”的单页模型。
- 在后台“内容” -> “首页内容”中添加你的内容。
- 在
index.htm中用{dede:field name='body'/}标签直接调用。
- 对于“关于我们”这种固定文本内容,最简单的方法是:
-
调试技巧:
- 如果标签调用不出来,先检查
typeid、row等参数是否正确。 - 使用浏览器的开发者工具(按F12)检查HTML结构,看看标签是否被正确解析。
- 清除浏览器缓存,或者使用无痕模式访问,确保看到的是最新修改。
- 如果标签调用不出来,先检查
-
安全第一:
- 修改前,务必备份原始的
index.htm文件和整个主题目录。 - 如果不熟悉代码,建议先在本地环境(如DedeAMPZ、phpStudy)测试,确认无误后再上传到服务器。
- 修改前,务必备份原始的
通过以上步骤,你就可以对织梦前台首页进行任意复杂的重新布局了,核心思想是:规划先行,然后分模块用HTML搭框架,再用织梦标签填充数据,最后用CSS美化,用JS增加交互。
