最基础的单栏目文章列表调用
这是最常见的需求:在某个页面上(通常是首页、栏目页或文章页)显示指定ID栏目的最新文章列表。

(图片来源网络,侵删)
标签说明
arclist:这是织梦用来调用文章列表的核心标签,功能非常强大。typeid:用于指定要调用的栏目ID,这是最关键的参数,你可以在后台“栏目管理”中找到每个栏目的ID。
示例代码
假设你想调用栏目ID为 1 的栏目下的5篇文章,每篇文章显示标题和发布时间。
{dede:arclist typeid='1' titlelen='30' row='5'}
<li>
<a href="[field:arcurl/]">[field:title/]</a>
<span>[field:pubdate function="MyDate('Y-m-d', @me)"/]</span>
</li>
{/dede:arclist}
代码详解
-
{dede:arclist typeid='1' titlelen='30' row='5'}typeid='1':指定调用栏目ID为1的文章。titlelen='30':截取文章标题的长度,最多显示30个字符(一个汉字算一个字符)。row='5':调用文章的数量,这里设置为5篇。
-
<li>...</li>:这是列表的HTML结构,你可以根据你的网站样式自由修改,比如使用<div>等。 -
[field:arcurl/]:这是文章的链接地址,点击后会跳转到该文章的详情页。
(图片来源网络,侵删) -
[field:title/]:这是文章的标题。 -
[field:pubdate function="MyDate('Y-m-d', @me)"/]:这是文章的发布时间。pubdate:获取文章的发布时间戳(一个长整型数字)。function="MyDate('Y-m-d', @me)":这是一个函数调用,将时间戳格式化为年-月-日的格式。MyDate是织梦内置的日期格式化函数。- 你可以修改
'Y-m-d'来改变日期格式,'Y-m-d H:i'会显示为年-月-日 时:分。
常用 arclist 标签参数
除了上面的基础参数,arclist 还有很多实用的参数,让你能更灵活地控制输出。
| 参数名 | 说明 | 示例 |
|---|---|---|
typeid |
指定栏目ID,多个ID用逗号隔开(如 typeid='1,2,3')。 |
typeid='5' |
row |
调用文章数量。 | row='10' |
infolen |
内容简介长度。 | infolen='100' |
orderby |
排序方式,常用值:pubdate(按发布时间,默认)、click(按点击量)、id(按文章ID)。 |
orderby='click' |
orderway |
排序顺序。desc(降序,默认)、asc(升序)。 |
orderway='asc' |
channelid |
模型ID,默认为1(文章),调用其他模型(如图集、软件)时使用。 | channelid='2' |
limit |
记录起始条数,格式为 起始数,显示数。limit='0,5' 表示从第0条开始,显示5条(即前5条)。 |
limit='5,10' (从第6条开始,显示10条) |
flag |
特定属性,多个用隔开,常用值:h(头条)、c(推荐)、p(图片)。 |
flag='h|c' (调用头条和推荐的文章) |
imgwidth |
缩略图宽度。 | imgwidth='200' |
imgheight |
缩略图高度。 | imgheight='150' |
高级用法
调用子栏目下的文章
如果你想调用某个栏目及其所有子栏目下的文章,可以使用 son 参数。
{dede:arclist typeid='1' row='10' son='yes'}
<li>
<a href="[field:arcurl/]">[field:title/]</a>
</li>
{/dede:arclist}
typeid='1':指定父栏目ID。son='yes':表示包含ID为1的所有子栏目。
调用带缩略图的文章列表
这是网站首页非常常见的布局。
<ul class="article-list">
{dede:arclist typeid='1' row='3' imgwidth='200' imgheight='150'}
<li>
<a href="[field:arcurl/]">
<img src="[field:picname/]" alt="[field:title/]" width="200" height="150">
</a>
<h3><a href="[field:arcurl/]">[field:title/]</a></h3>
<p>[field:description function='cn_substr(@me, 100)'/]...</p>
</li>
{/dede:arclist}
</ul>
[field:picname/]:获取文章的缩略图地址。[field:description/]:获取文章的内容简介,并用cn_substr函数截取100个字符。
调用特定栏目(如“产品”)的文章列表
假设你有一个“产品”栏目,你想在首页显示它的产品列表。
- 后台操作:进入“栏目管理”,找到“产品”栏目,记下它的 栏目ID(假设是
5)。 - 在前台模板:将ID填入
typeid参数。
<!-- 在首页模板 index.html 的某个位置添加如下代码 -->
<div class="product-showcase">
<h2>我们的产品</h2>
{dede:arclist typeid='5' row='6' titlelen='20'}
<div class="product-item">
<a href="[field:arcurl/]">
<img src="[field:picname/]" alt="[field:title/]">
<span>[field:title/]</span>
</a>
</div>
{/dede:arclist}
</div>
在不同页面调用列表
-
在首页调用:直接在首页模板(
index.htm)中插入arclist标签即可。 -
在栏目页调用:在栏目页模板(
list_xxx.htm,xxx是栏目ID)中调用时,通常不需要指定typeid,因为织梦会自动获取当前栏目的ID,但如果你想调用其他栏目,也可以手动指定。<!-- 在栏目页调用当前栏目的文章列表 --> {dede:arclist row='10'} ... {/dede:arclist} <!-- 在栏目页调用指定ID栏目的文章列表 --> {dede:arclist typeid='1' row='10'} ... {/dede:arclist} -
在文章页调用:在文章页模板(
article_article.htm)中调用时,用法和栏目页类似,可以调用当前文章所属栏目的文章,也可以调用其他栏目。
常见问题与注意事项
-
栏目ID找不到?
- 登录织梦后台 -> 栏目管理 -> 鼠标放在你想要调用的栏目名称上,浏览器状态栏或悬浮提示中会显示
...?cid=XX,这个XX就是栏目ID。
- 登录织梦后台 -> 栏目管理 -> 鼠标放在你想要调用的栏目名称上,浏览器状态栏或悬浮提示中会显示
-
列表不显示或显示异常?
- 检查
typeid:ID是否写错,是否是数字。 - 检查
row:是否设置了0。 - 检查文章:该栏目下是否有已发布的文章(状态为“仅动态”或“生成HTML”都可以)。
- 检查缓存:有时候模板修改后需要清空缓存才能生效,后台 -> 系统 -> 清空缓存。
- 检查
-
为什么我调用的列表是重复的?
- 可能是你使用了多个
arclist标签,并且它们的参数设置有重叠,或者底层模板(list_article.htm)本身也包含了列表调用,仔细检查模板代码。
- 可能是你使用了多个
-
arclist和channelartlist的区别arclist:用于调用文章列表,功能最灵活,可以指定任意栏目、任意数量、任意排序。channelartlist:用于调用栏目列表,并且每个栏目下自动带上该栏目的文章列表,它主要用于制作“一级栏目 -> 二级栏目 -> 文章”这种复杂结构,对于简单的文章列表调用,arclist更常用。
希望这份详细的指南能帮助你完全掌握在织梦中调用栏目文章列表的方法!
