最简单的文章列表调用(无分页,一次性显示所有)
这是最基础的方法,直接调用所有文章,一次性显示在首页,适合文章数量不多的网站。

(图片来源网络,侵删)
核心标签:{dede:arclist}
{dede:arclist} 是织梦最核心、最灵活的文章列表标签。
基础代码示例:
{dede:arclist}
<li>
<a href="[field:arcurl/]">[field:title/]</a>
<span>[field:pubdate function="MyDate('Y-m-d',@me)"/]</span>
</li>
{/dede:arclist}
代码解析:
{dede:arulist}和{/dede:arclist}:标签的开始和结束。[field:arcurl/]:文章的链接地址。[field:title/]:文章的标题。[field:pubdate function="MyDate('Y-m-d',@me)"/]:文章的发布日期,这里使用了function对日期进行了格式化,Y-m-d代表年-月-日,你也可以换成m-d、Y-m-d H:i等。<li>:列表项标签,你可以根据你的CSS样式修改成<div>或其他标签。
带分页的文章列表调用(推荐,适合文章数量多的网站)
如果你的网站文章很多,一次性全部加载会非常慢且影响用户体验,使用带分页的列表是最佳实践。
核心标签:{dede:arclist} + {dede:pagelist}
完整代码示例:
<!-- 文章列表部分 -->
<div class="article-list">
{dede:arclist pagesize='10' titlelen='50'}
<div class="article-item">
<h2><a href="[field:arcurl/]" title="[field:title/]">[field:title/]</a></h2>
<p class="info">发布时间:[field:pubdate function="MyDate('Y-m-d',@me)"] 作者:[field:author/]</p>
<p class="summary">[field:description/]...</p>
</div>
{/dede:arclist}
</div>
<!-- 分页导航部分 -->
<div class="page-nav">
{dede:pagelist listsize='5' listitem='pre,next,end,index'}
</div>
代码解析与常用属性:
-
{dede:arclist}的常用属性:pagesize='10':非常重要! 设置每页显示的文章数量。10就是每页显示10篇文章。titlelen='50'长度,截取50个字符,防止标题过长影响布局。typeid='':指定栏目ID,如果为空,则调用所有栏目的文章,如果你想只调用某个栏目下的文章,就填入对应的栏目ID,如typeid='1'。row='10':与pagesize类似,但pagesize用于分页,row用于固定数量调用(如首页调用最新10条文章,不使用分页),在分页场景下,请使用pagesize。orderway='desc':排序方式。desc为降序(最新的在前),asc为升序(最旧的在前)。channelid='-1':-1表示调用所有模型的文章(包括文章、图集等),默认只调用文章模型。
-
{dede:pagelist}的常用属性:
(图片来源网络,侵删)listsize='5':显示页码的数量,... 5 6 7 8 9 ...,前后各显示5个页码。listitem='pre,next,end,index':定义分页显示哪些元素。pre:上一页next:下一页end:尾页index:首页option:跳转下拉框info:页次信息(如:共X页)setitem:手动控制显示项(不常用)
调用特定栏目下的所有文章
很多时候,首页不需要调用所有栏目,只需要调用几个重要栏目的文章。
核心标签:{dede:arclist} 的 typeid 属性
示例1:调用单个栏目(如ID为1的栏目)
{dede:arclist typeid='1' pagesize='15'}
<div>
<a href="[field:arcurl/]">[field:title/]</a>
</div>
{/dede:arclist}
示例2:调用多个指定栏目(如ID为1和2的栏目)
用逗号隔开多个栏目ID。
{dede:arclist typeid='1,2' pagesize='15'}
<div>
<a href="[field:arcurl/]">[field:title/]</a>
</div>
{/dede:arulist}
示例3:调用顶级栏目下的所有子栏目文章
这是一个非常实用的技巧,假设你想调用“新闻中心”(假设ID为1)这个顶级栏目下所有子栏目的文章。
{dede:arclist typeid='son' topid='1' pagesize='15'}
<div>
<a href="[field:arcurl/]">[field:title/]</a>
</div>
{/dede:arclist}
typeid='son':表示调用子栏目。topid='1':指定顶级栏目的ID。
调用带缩略图的文章列表
对于新闻资讯类网站,首页通常需要图文并茂。
核心标签:[field:litpic/] 和自定义样式
代码示例:
{dede:arclist typeid='1,2' pagesize='6' orderby='pubdate'}
<div class="news-item">
<a href="[field:arcurl/]" class="thumb">
<img src="[field:litpic/]" alt="[field:title/]" />
</a>
<div class="news-content">
<h3><a href="[field:arcurl/]" title="[field:title/]">[field:title/]</a></h3>
<p class="desc">[field:description function='cn_substr(@me, 100)'/]...</p>
<div class="info">[field:pubdate function="MyDate('Y-m-d',@me)"]</div>
</div>
</div>
{/dede:arclist}
代码解析:
[field:litpic/]:文章的缩略图地址。注意:发布文章时,必须在“高级选项”中上传或填写缩略图,否则这里会没有内容。orderby='pubdate':按发布日期排序,确保最新发布的文章在最前面。[field:description function='cn_substr(@me, 100)'/]:对文章摘要进行截取,只显示前100个字符,避免过长。
总结与最佳实践
| 需求场景 | 推荐方法 | 核心标签/属性 |
|---|---|---|
| 首页最新文章(少量) | 方法一 | {dede:arclist} |
| 首页最新文章(大量,带分页) | 方法二(强烈推荐) | {dede:arulist pagesize='N'} + {dede:pagelist} |
| 首页只显示某个/某几个栏目 | 方法三 | {dede:arulist typeid='ID,ID'} |
| 首页图文混排 | 方法四 | {dede:arclist} + [field:litpic/] |
重要提示:
- 缓存问题:织梦有强大的缓存机制,修改完首页模板后,如果页面没有立即更新,请登录后台 -> 系统 -> 系统设置 -> 系统基本参数 -> 性能选项,点击“更新主页HTML”或“更新所有HTML”。
- 安全第一:在调用文章时,如果标题或摘要内容可能包含特殊字符(如
<,>, ),建议加上safe='html'属性进行过滤,防止XSS攻击。<a href="[field:arcurl/]" title="[field:title function='html2text(@me)']">[field:title function='htmlspecialchars(@me)'/]</a>
或者使用更简洁的:
<a href="[field:arcurl/]" title="[field:title/]">[field:title/]</a>
在织梦默认情况下,
[field:title]等字段会自动进行HTML转义,所以通常是安全的,但如果用户可以自定义内容,就需要格外小心。
希望这些详细的解释和示例能帮助你完美地在织梦首页调用所有文章!
