下面我将从基础到高级,详细讲解如何在首页调用内容,并提供最常用、最实用的代码示例。
核心概念:理解DedeCMS的标签系统
在开始之前,你需要明白DedeCMS的标签是如何工作的:
- 由
{dede:}和 包围的代码,{dede:arclist}。 - 属性: 标签内的参数,用于控制调用的内容,
typeid='1'(指定栏目ID),titlelen='30'(标题长度)。 - 底层模板: 在某些标签(如
arclist,list)内部,可以使用field变量来循环输出每条内容的特定字段,如field.title(标题),field.pubdate(发布日期)。
最常用:调用文章列表 ({dede:arclist})
这是调用首页文章列表最核心、最常用的标签,它可以调用指定栏目下的文章,并且非常灵活。
基础用法
在首页模板文件 index.htm 中,直接使用以下代码即可调用所有栏目的最新文章。
{dede:arclist}
<li>
<a href="[field:arcurl/]">[field:title/]</a>
<span>[field:pubdate function="MyDate('Y-m-d', @me)"/]</span>
</li>
{/dede:arclist}
代码解释:
{dede:arclist}: 开始调用文章列表。</li>: 结束调用。[field:arcurl/]: 调用文章的链接地址。[field:title/]:调用文章的标题。[field:pubdate...]: 调用文章的发布日期,并使用function对其进行格式化,MyDate('Y-m-d', @me)是一个内置函数,将日期格式化为“年-月-日”。
高级用法:常用属性详解
实际应用中,我们几乎都会给 arclist 标签加上各种属性,以实现精确控制。
{dede:arclist
typeid='1,2,3' len='30'
row='10'
orderby='pubdate'
orderway='desc'
idlist='100,101,102'
}
<li>
<a href="[field:arcurl/]" title="[field:title/]">[field:title function='cn_substr(@me, 30)'/]</a>
<span>[field:pubdate function="MyDate('m-d', @me)"/]</span>
</li>
{/dede:arclist}
属性详解:
| 属性名 | 作用 | 示例 |
|---|---|---|
typeid |
指定栏目ID,调用指定栏目及其子栏目的文章,多个ID用英文逗号隔开。 | typeid='1' (只调用栏目ID为1的文章) typeid='1,5' (调用栏目1和5的文章) typeid='2,3' (调用栏目2和3,以及它们的所有子栏目的文章) |
row |
调用文章数量。 | row='8' (调用8篇文章) |
orderby |
排序依据,按什么字段排序。 | orderby='hot' (按浏览量排序) orderby='pubdate' (按发布时间排序,最常用) orderby='sortrank' (按后台“置顶”排序) |
orderway |
排序方式。desc (降序,从大到小/从新到旧),asc (升序,从小到大/从旧到新)。 |
orderway='desc' (默认,最新的在前面) |
idlist |
指定文章ID,直接调用指定的几篇文章,忽略栏目限制。 | idlist='100,101,102' (只调用ID为100, 101, 102的三篇文章) |
channelid |
指定模型ID。1=文章,2=图集,3=软件等,用于调用不同模型的内容。 |
channelid='1' (只调用文章模型) |
limit |
分页偏移量,格式为 起始数,数量。 |
limit='0,5' (从第0条开始,取5条,即前5条) limit='5,10' (从第5条开始,取10条,即第6到15条) |
常用字段调用
在 arclist 的底层模板中,你可以使用 field: 来调用文章的各个字段。
| 字段名 | 说明 | 示例 |
|---|---|---|
field:title |
[field:title/] |
|
field:arcurl |
文章链接 | [field:arcurl/] |
field:pubdate |
发布时间(时间戳) | [field:pubdate/] |
field:description |
文章摘要 | [field:description/] |
field:litpic |
文章缩略图 | <img src="[field:litpic/]"> |
field:textile |
文章正文内容(不带HTML标签) | [field:textile function='cn_substr(@me, 100)'/] (截取100字) |
field:typeid |
所属栏目ID | |
field:typename |
所属栏目名称 | [field:typename/] |
field:click |
文章点击数 | [field:click/] |
综合实例:常见的首页布局
下面是一个典型的首页布局代码,包含了头条新闻、图文资讯、最新文章等多个模块。
假设栏目结构:
- 栏目ID 1: 网站首页
- 栏目ID 2: 头条新闻 (带属性“头条”)
- 栏目ID 3: 图文资讯
- 栏目ID 4: 技术文档
index.htm 模板代码示例:
<!DOCTYPE html>
<html>
<head>我的DedeCMS网站</title>
</head>
<body>
<!-- 1. 调用头条新闻 (带有"头条"属性的文章) -->
<div class="headlines">
<h2>头条新闻</h2>
<ul>
{dede:arclist typeid='2' titlelen='60' row='5' orderby='pubdate' orderway='desc'}
<li><a href="[field:arcurl/]" title="[field:title/]">[field:title/]</a></li>
{/dede:arclist}
</ul>
</div>
<!-- 2. 调用图文资讯 (带缩略图) -->
<div class="news-pic">
<h2>图文资讯</h2>
<ul>
{dede:arclist typeid='3' row='4' titlelen='30'}
<li>
<a href="[field:arcurl/]">
<img src="[field:litpic/]" alt="[field:title/]">
<span>[field:title/]</span>
</a>
</li>
{/dede:arclist}
</ul>
</div>
<!-- 3. 调用技术文档栏目下的最新文章 -->
<div class="tech-doc">
<h2>技术文档</h2>
<ul>
{dede:arclist typeid='4' row='10' titlelen='40'}
<li>
<span>[field:pubdate function="MyDate('Y-m-d', @me)"/]</span>
<a href="[field:arcurl/]" title="[field:title/]">[field:title/]</a>
</li>
{/dede:arclist}
</ul>
</div>
<!-- 4. 调用全站最新文章 -->
<div class="latest-all">
<h2>最新更新</h2>
<ul>
{dede:arclist row='15' titlelen='35'}
<li>
<a href="[field:arcurl/]" title="[field:title/]">[field:title/]</a>
</li>
{dede:arclist}
</ul>
</div>
</body>
</html>
其他常用调用标签
除了 arclist,还有几个标签也经常在首页使用。
调用指定栏目 ({dede:channel})
用于调用栏目列表,比如做主导航或子导航。
{dede:channel type='top' row='8'}
<li><a href="[field:typeurl/]">[field:typename/]</a></li>
{/dede:channel}
type='top': 只调用顶级栏目。row='8': 调用8个栏目。[field:typeurl/]: 栏目链接。[field:typename/]: 栏目名称。
调用单篇文档 ({dede:field})
通常用于调用首页的“网站公告”、“关于我们”等固定内容,这些内容需要你在后台“添加单页文档”,并指定其首页模板。
<!-- 在后台的“首页管理”中,为某个单页文档指定模板,index_about.htm -->
<!-- 然后在 index.htm 中用 include 标签引入 -->
{dede:include filename='index_about.htm'/}
或者,直接在后台的“系统基本参数” -> “核心设置”中,设置“首页默认内容”,然后用以下标签调用:
{dede:field name='position'/} <!-- 面包屑导航 -->
{dede:field name='title'/} <!-- 当前页面标题 -->
{dede:field name='description'/} <!-- 网站描述 -->
{dede:field name='keywords'/} <!-- 网站关键词 -->
{dede:field name='content'/} <!-- 首页默认内容 -->
注意事项与最佳实践
- 栏目ID: 在使用
typeid之前,务必去后台“栏目管理”中确认你想要调用的栏目ID。 - 模板缓存: DedeCMS有强大的缓存机制,修改完模板后,如果首页没有更新,请去后台“生成” -> “更新主页HTML”,或者清除缓存。
- 标签闭合: 确保所有标签都正确闭合,
{dede:xxx}对应{/dede:xxx},否则会导致页面错乱。 - 简洁高效: 尽量使用
typeid来限制调用范围,避免在全站海量数据中查询,这样可以提高网站加载速度。 - 自定义函数: 像
cn_substr和MyDate这样的自定义函数非常有用,可以让你更灵活地处理数据和显示格式。
希望这份详细的指南能帮助你完全掌握DedeCMS首页内容的调用!如果还有更具体的需求,可以继续提问。
