文章页的主模板文件是 article_article.htm。

(图片来源网络,侵删)
下面我将为你详细解释这个文件的结构,以及它如何与其他文件和标签协同工作,让你彻底搞懂DedeCMS的文章页面模板机制。
核心主模板文件
主模板文件决定了文章页面的整体布局、样式和结构。
- 文件位置:
/templets/你的默认模板文件夹/ - 文件名:
article_article.htm
这个文件就是你在后台“模板管理”里设置的“文章列表页模板”,当你点击一篇文章进入详情页时,DedeCMS就会调用这个模板来生成最终的HTML页面。
article_article.htm 文件的结构解析
打开 article_article.htm 文件,你会发现它是一个标准的HTML文件,里面混合了大量的DedeCMS专属的模板标签,其结构通常可以分为以下几个部分:

(图片来源网络,侵删)
页头部分
这部分通常包含网站的整体结构,如Logo、导航栏、用户登录区等,它本身可能也是一个独立的模板文件,通过 {dede:include filename='head.htm' /} 这样的标签引入。
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">{dede:field.title/} - {dede:global.cfg_webname/}</title>
<meta name="description" content="{dede:field.description function='html2text(@me)'/}">
<meta name="keywords" content="{dede:field.keywords/}">
<!-- 引入CSS文件等 -->
<link rel="stylesheet" href="/templets/default/style/css.css">
</head>
<body>
<!-- 引入头部模板 -->
{dede:include filename='head.htm' /}
{dede:field.title/}: 输出当前文章的标题。{dede:global.cfg_webname/}: 输出网站的全局名称,通常用于页面的<title>标签,格式为“文章标题 - 网站名”。{dede:include filename='head.htm' /}: 包含(引入)一个名为head.htm的文件,这是网站的头部模板,这样做的目的是为了复用代码,修改头部时只需改一个文件。
区
这是文章页面的核心,包含了文章的所有信息。
<div class="main">
<div class="article-content">
<!-- 文章标题 -->
<h1>{dede:field.title/}</h1>
<!-- 文章属性(作者、来源、时间、点击等) -->
<div class="article-info">
<span>作者:{dede:field.writer/}</span>
<span>来源:{dede:field.source/}</span>
<span>时间:{dede:field.pubdate function='MyDate('Y-m-d H:i',@me)'/}</span>
<span>点击:<script src="{dede:field name='phpurl'/}/count.php?view=yes&aid={dede:field.aid/}&mid={dede:field.mid/}" type='text/javascript' language="javascript"></script>次</span>
</div>
<!-- 文章正文内容 -->
<div class="article-body">
{dede:field.body/}
</div>
<!-- 上下篇导航 -->
<div class="prenext">
<p>上一篇:{dede:prenext get='pre'/}</p>
<p>下一篇:{dede:prenext get='next'/}</p>
</div>
<!-- 相关文章 -->
<div class="related-article">
<h3>相关文章</h3>
{dede:like titlelen='48' row='8'}
<li><a href="[field:arcurl/]">[field:title/]</a></li>
{/dede:like}
</div>
<!-- 顶一下、踩一下功能 -->
<div class="digg">
<div class="diggbox digg_good" onmousemove="this.style.backgroundPosition='left bottom';" onmouseout="this.style.backgroundPosition='left top';" onclick="postDigg('good',{dede:field.aid/})">
<div class="digg_num">{dede:field.goodpost/}</div>
<div class="digg_percent">{dede:field.goodper/}%</div>
<div class="digg_text">顶</div>
</div>
<div class="diggbox digg_bad" onmousemove="this.style.backgroundPosition='right bottom';" onmouseout="this.style.backgroundPosition='right top';" onclick="postDigg('bad',{dede:field.aid/})">
<div class="digg_num">{dede:field.badpost/}</div>
<div class="digg_percent">{dede:field.badper/}%</div>
<div class="digg_text">踩</div>
</div>
</div>
<!-- 评论区域 -->
{dede:include file='comment.htm'/}
</div>
</div>
关键标签解释:
{dede:field.xxx/}: 这是获取文章单个字段的标签。title: 文章标题writer: 作者source: 来源pubdate: 发布时间(通常配合function进行格式化)body: 文章正文内容,这是最重要的一个字段。aid: 文章ID
{dede:prenext get='pre'/}和{dede:prenext get='next'/}: 分别获取上一篇和下一篇文章的链接信息,它会自动处理“已经是最后一篇”等情况。{dede:like ...}: 调用“相关文章”标签,根据关键词等条件列出其他文章。{dede:include file='comment.htm'/}: 包含(引入)评论模板文件,评论功能通常是一个独立模块,所以被拆分到了comment.htm文件中。
页脚部分
与头部类似,页脚也通常通过一个独立的模板文件引入。

(图片来源网络,侵删)
<!-- 引入底部模板 -->
{dede:include filename='footer.htm' /}
</body>
</html>
其他相关的重要文件
除了 article_article.htm,了解下面这些文件能让你对模板系统有更完整的认识:
article_image.htm: 如果你在后台发布文章时,选择了“图集”模型,那么访问这篇文章时,系统会调用这个模板来展示图片集。article_spec.htm: 如果文章属于“软件”等特殊模型,可能会调用这个模板。head.htm: 网站头部模板,包含Logo、主导航等。footer.htm: 网站底部模板,包含版权信息、友情链接等。comment.htm: 评论列表和评论表单的模板。list_article.htm: 文章列表页的模板,这个是用来展示多篇文章摘要的页面,而不是文章详情页,新手经常会混淆这两个文件。
总结与操作建议
| 模板类型 | 文件名 | 作用 | 位置 |
|---|---|---|---|
| 文章详情页 | article_article.htm |
显示单篇文章的完整内容 | /templets/你的模板名/ |
| 图集详情页 | article_image.htm |
显示图集内容 | /templets/你的模板名/ |
| 文章列表页 | list_article.htm |
显示多篇文章的摘要列表 | /templets/你的模板名/ |
| 公共头部 | head.htm |
网站头部 | /templets/你的模板名/ |
| 公共底部 | footer.htm |
网站底部 | /templets/你的模板名/ |
| 评论模块 | comment.htm |
评论列表和表单 | /templets/你的模板名/ |
如何修改文章页面?
- 登录DedeCMS后台。
- 进入 【模板】 -> 【模板管理】。
- 在左侧选择你当前正在使用的模板文件夹。
- 在右侧的列表中找到 【文章列表页模板】,点击后面的 【修改】 按钮。
- 这时打开的就是
article_article.htm文件,你可以直接在这里修改HTML代码、CSS类名,或者调整各个标签的位置和样式。 - 修改完成后,点击 【保存】 按钮。
重要提示:修改模板后,如果页面没有立即更新,请清除一下浏览器缓存,或者在后台的 【生成】 -> 【一键更新所有】**** 中重新生成一下文章页面。
