模板文件结构
一个典型的DedeCMS新闻资讯模块,其模板文件通常存放在 /templets/ 目录下,并按照栏目ID进行组织。
假设您的“新闻资讯”栏目的ID是 1,那么模板文件结构大致如下:
/templets/
├── default/ // 默认模板目录
│ ├── index.htm // 网站首页模板
│ ├── article_article.htm // 文章内容页模板
│ ├── list_default.htm // 文章列表页模板 (栏目列表页)
│ └── ... // 其他页面模板
│
└── plus/ // 公共模板目录
└── view_img.htm // 图片集内容页
对于新闻资讯,我们最关心的是三个核心文件:
list_default.htm: 列表页模板,用于显示一个栏目下的所有文章标题、发布时间等,通常分页显示。article_article.htm: 内容页模板,用于显示单篇文章的完整内容,包括标题、正文、作者、来源、点击量等。index.htm: 首页模板,通常用于调用各大栏目的最新文章或推荐文章。
核心DedeCMS标签
在编写模板时,你需要熟练使用DedeCMS的专用标签。
列表页常用标签 (list_default.htm)
这些标签通常放在 {dede:list} 循环标签内。
| 说明 | 示例 | |
|---|---|---|
{dede:list} |
列表循环开始,用于遍历当前栏目的所有文章。 | {dede:list pagesize='10'} |
{/dede:list} |
列表循环结束。 | {/dede:list} |
[field:title/] |
。 | <a href="[field:arcurl/]">[field:title/]</a> |
[field:arcurl/] |
文章的完整链接地址。 | <a href="[field:arcurl/]" title="[field:title/]"> |
[field:pubdate function="MyDate('Y-m-d',@me)"/] |
文章发布时间。function用于格式化时间。 |
<span>[field:pubdate function="MyDate('Y-m-d',@me)"]</span> |
[field:description/] |
中自动截取)。 | <p>[field:description function='cn_substr(@me,100)']...</p> |
[field:litpic/] |
文章的缩略图。 | <img src="[field:litpic/]" alt="[field:title/]" /> |
[field:click/] |
文章的点击量。 | <span>阅读([field:click/])</span> |
[field:source/] |
文章来源。 | <span>来源:[field:source/]</span> |
[field:writer/] |
文章作者。 | <span>作者:[field:writer/]</span> |
[field:typedir/] |
当前栏目的目录路径。 | <a href="[field:typedir/]">更多</a> |
{dede:pagelist/} |
分页导航。 | {dede:pagelist listsize='5'/} |
{dede:list} 属性说明:
pagesize='10': 每页显示的文章数量。
模板实例代码
列表页模板 (list_default.htm)
这是一个常见的新闻列表页布局,包含文章标题、时间、缩略图和分页。
{dede:include filename="head.htm"/} <!-- 引入头部文件 -->
<div class="main">
<div class="left">
<div class="title">
<h2>{dede:field.typename/}</h2> <!-- 显示当前栏目名称 -->
<div class="more"><a href="{dede:field.typeurl/}">更多</a></div>
</div>
<div class="news_list">
{dede:list pagesize='10'}
<div class="news_item">
<div class="img_box">
<a href="[field:arcurl/]">
<img src="[field:litpic/]" alt="[field:title/]" />
</a>
</div>
<div class="text_box">
<h3><a href="[field:arcurl/]" title="[field:title/]">[field:title/]</a></h3>
<p>[field:description function='cn_substr(@me,120)']...</p>
<div class="info">
<span>[field:pubdate function="MyDate('Y-m-d',@me)"]</span>
<span>阅读([field:click/])</span>
</div>
</div>
</div>
{/dede:list}
</div>
<div class="page">
{dede:pagelist listitem="info,index,end,pre,next,pageno" listsize="5"/}
</div>
</div>
<!-- 右侧边栏可以放 {dede:include filename="right.htm"} -->
</div>
{dede:include filename="footer.htm"} <!-- 引入底部文件 -->
内容页模板 (article_article.htm)
这个模板用于展示单篇文章的详细内容。
{dede:include filename="head.htm"/}
<div class="main">
<div class="left">
<div class="title">
<h2>{dede:field.title/}</h2>
<div class="info">
<span>发布时间:{dede:field.pubdate function="MyDate('Y-m-d H:i:s',@me)"/}</span>
<span>来源:{dede:field.source/}</span>
<span>作者:{dede:field.writer/}</span>
<span>点击:{dede:field.click/}</span>
</div>
</div>
<div class="content">
{dede:field.body/} <!-- 这是文章正文的核心标签 -->
</div>
<div class="prenext">
<div class="pre">
{dede:prenext get='pre'/}
</div>
<div class="next">
{dede:prenext get='next'/}
</div>
</div>
<!-- 文档评论模块 -->
{dede:include filename="plus/feedback.htm"/}
</div>
<!-- 右侧边栏 -->
</div>
{dede:include filename="footer.htm"}
高级技巧与优化
条件判断 (if
页,你可能需要根据文章属性显示不同的内容,只有“推荐”的文章才显示“[荐]”标签。
<!-- 在列表项中使用 -->
{dede:list}
<h3>
[field:title/]
{dede:if iscommend='yes'}
<span class="recommend">[荐]</span>
{/dede:if}
</h3>
{/dede:list}
{dede:if} 常用属性:
iscommend='yes': 判断是否为推荐文章。
typeid='1': 判断是否属于指定ID的栏目。
ismember='yes': 判断是否为会员投稿。
调用指定栏目的文章
你可以在首页或任何页面调用其他栏目的最新文章。
<!-- 调用ID为 '2' 的栏目下的5篇最新文章 -->
{dede:arclist typeid='2' titlelen='30' row='5'}
<li><a href="[field:arcurl/]">[field:title/]</a></li>
{/dede:arclist}
{dede:arclist} 常用属性:
typeid: 指定栏目ID。
row: 调用文章数量,len`: 标题长度。
type: image(仅图片集)、spec(专题)等。
infolen: 摘要长度。
分页
当一篇文章很长时,DedeCMS支持手动分页,在内容页模板中,你需要使用 {dede:pagebreak/} 标签来显示分页链接。
在文章编辑器中:你需要插入分页符。
在 article_article.htm 模板中:在 {dede:field.body/} 的适当位置(通常是末尾)添加:
<div class="pages">
{dede:pagebreak/}
</div>
SEO优化
- 标题 (Title):
- 关键词 (Keywords):
<meta name="keywords" content="{dede:field.keywords/}" />
- 描述 (Description):
<meta name="description" content="{dede:field.description function='html2text(@me)'/}" />
html2text 函数可以将HTML标签去掉,只保留纯文本,更适合搜索引擎。
如何使用这些模板
- 登录后台:进入您的DedeCMS后台管理系统。
- 进入模板管理:在左侧菜单找到
模板 -> 模板管理。
- 选择模板:在“模板管理”页面,点击右上角的
默认模板管理。
- 编辑模板:在列表中找到您要修改的模板文件(如
list_default.htm),点击后面的 修改 按钮。
- 粘贴代码:将您准备好的代码粘贴到编辑器中,点击
保存。
- 生成页面:修改模板后,需要重新生成页面才能看到效果,进入
生成 -> 一键生成,选择 更新栏目HTML 和 更新文档HTML,然后点击 开始生成。
希望这份详细的指南能帮助您快速上手DedeCMS新闻资讯模板的开发!
页,你可能需要根据文章属性显示不同的内容,只有“推荐”的文章才显示“[荐]”标签。
<!-- 在列表项中使用 -->
{dede:list}
<h3>
[field:title/]
{dede:if iscommend='yes'}
<span class="recommend">[荐]</span>
{/dede:if}
</h3>
{/dede:list}
{dede:if} 常用属性:
iscommend='yes': 判断是否为推荐文章。typeid='1': 判断是否属于指定ID的栏目。ismember='yes': 判断是否为会员投稿。
调用指定栏目的文章
你可以在首页或任何页面调用其他栏目的最新文章。
<!-- 调用ID为 '2' 的栏目下的5篇最新文章 -->
{dede:arclist typeid='2' titlelen='30' row='5'}
<li><a href="[field:arcurl/]">[field:title/]</a></li>
{/dede:arclist}
{dede:arclist} 常用属性:
typeid: 指定栏目ID。row: 调用文章数量,len`: 标题长度。type:image(仅图片集)、spec(专题)等。infolen: 摘要长度。
分页
当一篇文章很长时,DedeCMS支持手动分页,在内容页模板中,你需要使用 {dede:pagebreak/} 标签来显示分页链接。
在文章编辑器中:你需要插入分页符。
在 article_article.htm 模板中:在 {dede:field.body/} 的适当位置(通常是末尾)添加:
<div class="pages">
{dede:pagebreak/}
</div>
SEO优化
- 标题 (Title):
- 关键词 (Keywords):
<meta name="keywords" content="{dede:field.keywords/}" /> - 描述 (Description):
<meta name="description" content="{dede:field.description function='html2text(@me)'/}" />html2text函数可以将HTML标签去掉,只保留纯文本,更适合搜索引擎。
如何使用这些模板
- 登录后台:进入您的DedeCMS后台管理系统。
- 进入模板管理:在左侧菜单找到
模板->模板管理。 - 选择模板:在“模板管理”页面,点击右上角的
默认模板管理。 - 编辑模板:在列表中找到您要修改的模板文件(如
list_default.htm),点击后面的修改按钮。 - 粘贴代码:将您准备好的代码粘贴到编辑器中,点击
保存。 - 生成页面:修改模板后,需要重新生成页面才能看到效果,进入
生成->一键生成,选择更新栏目HTML和更新文档HTML,然后点击开始生成。
希望这份详细的指南能帮助您快速上手DedeCMS新闻资讯模板的开发!
