后,看到的文章详情页,它通常用于展示文章的标题、作者、发布时间、来源、正文内容、相关文章、评论等信息。

(图片来源网络,侵删)
内容页模板文件位置
在 Dedecms 中,内容页模板文件通常存放在以下目录:
/templets/default/
默认情况下,内容页模板文件名为 article_article.htm,你也可以在后台创建多个模板,并指定不同的文章栏目使用不同的模板。
内容页模板的核心结构
页模板主要由以下几个部分构成:
- 头部文件:包含网站的整体结构,如
<head>标签(标题、关键词、描述)、网站Logo、主导航等。 - 区:这是文章页面的核心,展示文章的具体信息。
- 侧边栏:通常包含热门文章、推荐文章、友情链接等。
- 底部文件:包含网站的版权信息、备案号、底部导航等。
在 Dedecms 中,为了代码复用和维护方便,通常会使用 include 标签来引入头部和底部。

(图片来源网络,侵删)
{dede:include filename="head.htm"/}
<!-- 主体内容区 -->
{dede:include filename="footer.htm"/}
主体内容区常用标签详解
页模板最核心的部分,我们来逐一解析常用的标签。
文章基本信息
| 说明 | 示例 | |
|---|---|---|
{dede:field.title/} |
<h1>{dede:field.title/}</h1> |
|
{dede:field.seotitle/} |
文章的SEO标题(在后台文章编辑页的“高级选项”中设置) | <title>{dede:field.seotitle/}_网站名称</title> |
{dede:field.description/} |
在后台文章编辑页的“处设置) | <meta name="description" content="{dede:field.description/}"> |
{dede:field.keywords/} |
文章关键词(在后台文章编辑页的“关键词”处设置) | <meta name="keywords" content="{dede:field.keywords/}"> |
{dede:field.pubdate function="MyDate('Y-m-d H:i',@me)"/} |
文章发布时间,function用于格式化时间 |
<span>发布时间:{dede:field.pubdate function='strftime("%Y-%m-%d %H:%M",@me)'/}</span> |
{dede:field.source/} |
文章来源 | <span>来源:{dede:field.source/}</span> |
{dede:field.writer/} |
文章作者 | <span>作者:{dede:field.writer/}</span> |
{dede:field.click/} |
文章点击数 | <span>点击:{dede:field.click/}</span> |
{dede:field.arcclick/} |
与 field.click 功能相同,也是文章点击数 |
<span>点击:{dede:field.arcclick/}</span> |
| 说明 | 示例 | |
|---|---|---|
{dede:field.body/} |
最重要的标签,用于输出文章的正文内容。 | <div class="article-content">{dede:field.body/}</div> |
文章栏目相关信息
| 说明 | 示例 | |
|---|---|---|
{dede:field.typename/} |
当前文章所在的栏目名称 | <span>栏目:<a href="{dede:type typeid='0'/}">{dede:field.typename/}</a></span> |
{dede:type typeid='0'}{/dede:type} |
获取当前文章栏目的链接。typeid='0' 表示获取当前栏目。 |
<a href="[field:typelink/]">返回[field:typename/]栏目</a> |
文章分页标签
很长时,需要在后台设置“分页符”来将其分成多页,这时就需要分页标签。
| 说明 | 示例 | |
|---|---|---|
{dede:pagebreak/} |
中插入分页符,这个标签会直接在后台编辑时插入。 | (在后台编辑文章时使用) |
{dede:pagelist listitem="info,index,end,pre,next,pageno" listsize="5"/} |
生成分页导航条。 | <div class="page-nav">{dede:pagelist/}</div> |
listitem 属性可以控制显示哪些分页元素:
info: 显示“共X页”等信息index: 显示“首页”pre: 显示“上一页”next: 显示“下一页”end: 显示“末页”pageno: 显示页码
文章上下篇标签
用于在文章页底部显示上一篇和下一篇文章。

(图片来源网络,侵删)
| 说明 | 示例 | |
|---|---|---|
{dede:prenext get='pre'/} |
获取上一篇链接。 | <div class="prenext">{dede:prenext get='pre'/}</div> |
{dede:prenext get='next'/} |
获取下一篇链接。 | <div class="prenext">{dede:prenext get='next'/}</div> |
{dede:prenext/} |
同时获取上下篇链接。 | <div class="prenext">{dede:prenext/}</div> |
完整的内容页模板示例
下面是一个简化但功能完整的 article_article.htm 模板示例,你可以基于此进行修改。
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">{dede:field.seotitle/}_{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/css/style.css">
</head>
<body>
<!-- 引入头部文件 -->
{dede:include filename="head.htm"/}
<!-- 主体内容区 -->
<div class="main-content">
<div class="article-container">
<!-- 文章标题 -->
<h1 class="article-title">{dede:field.title/}</h1>
<!-- 文章信息栏 -->
<div class="article-info">
<span>发布时间:{dede:field.pubdate function='strftime("%Y-%m-%d %H:%M",@me)'/}</span>
<span>来源:{dede:field.source/}</span>
<span>作者:{dede:field.writer/}</span>
<span>点击:<span id="hits">{dede:field.click/}</span></span>
<span>栏目:<a href="{dede:type typeid='0'/}">{dede:field.typename/}</a></span>
</div>
<!-- 文章正文内容 -->
<div class="article-content">
{dede:field.body/}
</div>
<!-- 文章分页 -->
<div class="article-page">
{dede:pagelist listitem="index,end,pre,next,pageno" listsize="5"/}
</div>
<!-- 文章上下篇 -->
<div class="article-pre-next">
{dede:prenext get='pre'/}
{dede:prenext get='next'/}
</div>
<!-- 相关文章标签 -->
<div class="related-articles">
<h3>相关文章</h3>
{dede:likearticle row='6' titlelen='30'}
<li><a href="[field:arcurl/]" title="[field:title/]">[field:title/]</a></li>
{/dede:likearticle}
</div>
<!-- 文章评论标签 -->
{dede:include filename="plus/feedback_templet.htm"/}
</div>
<!-- 引入侧边栏文件 -->
{dede:include filename="sidebar.htm"/}
</div>
<!-- 引入底部文件 -->
{dede:include filename="footer.htm"/}
<!-- 引入JS文件 -->
<script src="/templets/default/js/jquery.min.js"></script>
<script>
// 点击数实时更新
$.get("/plus/ajaxhits.php?ajax=yes&aid={dede:field.id/}", function(data){
$("#hits").html(data);
});
</script>
</body>
</html>
如何修改和使用内容页模板
- 备份原模板:在修改任何模板文件之前,请务必备份原始的
article_article.htm文件,以防修改出错无法恢复。 - FTP/SFTP登录:使用FTP工具(如 FileZilla)登录到你的网站服务器。
- 找到模板文件:进入
/templets/default/目录,找到article_article.htm文件。 - 下载并编辑:将文件下载到本地,使用代码编辑器(如 VS Code, Sublime Text, Dreamweaver)打开它。
- 修改代码:根据你的网站设计,修改HTML结构、CSS类名,并替换或添加上述的Dedecms标签。
- 上传并覆盖:将修改好的文件重新上传到服务器,覆盖原来的文件。
- 后台更新:登录Dedecms后台,进入“模板” -> “默认模板管理”,找到你的内容页模板,点击“更新”按钮,使系统重新编译模板。
常见问题与注意事项
- 标签不显示内容:
- 检查标签拼写是否正确,
{dede:field.title/}不要写成{dede:filed.title/}。 - 检查后台文章中对应的字段(如摘要、关键词)是否已经填写。
- 确保模板文件路径正确。
- 检查标签拼写是否正确,
- 样式错乱:
- 检查HTML结构是否完整,标签是否正确闭合。
- 检查CSS选择器是否与模板中的
class或id匹配。 - 确保引入的CSS文件路径正确。
- 分页不生效:
- 确保在后台编辑文章时,确实插入了分页符(通常是
[page]标签)。 - 检查
{dede:pagebreak/}和{dede:pagelist/}标签是否都正确放置。
- 确保在后台编辑文章时,确实插入了分页符(通常是
- 点击数不更新:
- 确保网站的
plus目录存在且有执行权限。 - 检查是否启用了“启用页面静态化”功能,如果开启了静态化,点击数可能不会实时更新,需要用户访问后才会生成新的HTML文件并记录点击,示例中的JS代码可以解决这个问题,实现点击数的动态加载。
- 确保网站的
希望这份详细的指南能帮助你更好地理解和定制 Dedecms 的内容页模板!
