在 DedeCMS (织梦CMS) 中,实现这个功能非常简单,因为它本身就是为动态内容展示而设计的,核心就是使用 DedeCMS 的 。

(图片来源网络,侵删)
下面我将从最简单到更复杂的场景,为你详细讲解如何实现和优化文章动态浏览。
核心方法:使用 {dede:arclist}
这是 DedeCMS 最核心、最常用的标签,专门用于调用文章列表,它本身就是动态的,每次页面访问都会执行数据库查询来获取最新的数据。
基础用法(在首页模板 index.htm 中)
- 登录 DedeCMS 后台:
你的域名/dede/
- 进入模板管理:在左侧菜单找到【模板】 -> 【默认模板管理】。
- 编辑首页模板:找到并点击
index.htm 后面的【修改】按钮。
- 插入代码:在你希望显示最新文章列表的位置,插入以下代码:
<h2>最新文章</h2>
<ul>
{dede:arclist row='10' titlelen='30'}
<li>
<a href="[field:arcurl/]">[field:title/]</a>
<span>[field:pubdate function="MyDate('Y-m-d', @me)"/]</span>
</li>
{/dede:arclist}
</ul>
-
代码解释:
{dede:arclist ...}: 开始调用文章列表的标签。
row='10': 表示调用 10 条文章,你可以根据需要修改这个数字。
titlelen='30': 表示文章标题最多显示 30 个字符,超出部分用省略号,可以修改或删除。
<li>: 列表项,你可以用任何 HTML 标签来美化它。
[field:arcurl/]: 文章的完整链接地址。
[field:title/]: 文章的标题。
[field:pubdate function="MyDate('Y-m-d', @me)"/]: 文章的发布日期。function="MyDate('Y-m-d', @me)" 是一个函数,用来格式化日期显示为 年-月-日 的格式。
{/dede:arclist}: 结束标签。
-
更新首页:保存模板后,回到 DedeCMS 后台首页,点击【生成】 -> 【更新主页】或【更新所有HTML】,这样你的首页就会显示最新的文章列表了。
(图片来源网络,侵删)
高级用法与常用属性
{dede:arclist} 标签非常强大,可以通过不同的属性实现各种复杂的动态浏览效果。
按不同栏目调用
如果你想只显示某个特定栏目的文章,可以使用 typeid 属性。
<!-- 只显示栏目ID为 1 的下的 10 篇最新文章 -->
{dede:arclist typeid='1' row='10'}
<li><a href="[field:arcurl/]">[field:title/]</a></li>
{/dede:arclist}
如何获取栏目ID?
进入【栏目管理】,鼠标放在目标栏目上,浏览器左下角状态栏会显示 typeid=数字,这个数字就是栏目ID。
排序方式
默认情况下,文章是按发布时间降序排列的(最新的在前),你也可以修改排序方式。
orderby='hot': 按点击量(人气)从高到低排序。
orderby='pubdate': 按发布时间从高到低排序(默认)。
orderby='rand': 随机排序。
<!-- 显示点击量最高的 10 篇文章 -->
<h2>热门文章</h2>
<ul>
{dede:arclist row='10' orderby='hot'}
<li><a href="[field:arcurl/]">[field:title/]</a> - 点击量:[field:click/]</li>
{/dede:arclist}
</ul>
显示文章摘要和缩略图
为了让列表更丰富,可以调用文章摘要和缩略图。
{dede:arclist row='5' titlelen='40' imgwidth='120' imgheight='80'}
<div class="article-item">
<a href="[field:arcurl/]">
<img src="[field:picname/]" alt="[field:title/]" width="120" height="80" />
</a>
<h3><a href="[field:arcurl/]">[field:title/]</a></h3>
<p class="summary">[field:description function='cn_substr(@me, 100)'/]...</p>
<p class="info">作者:[field:writer/] | 日期:[field:pubdate function="MyDate('Y-m-d', @me)"/] | 点击:[field:click/]</p>
</div>
{/dede:arclist}
[field:picname/]: 文章的第一张缩略图路径。
[field:description/]:
function='cn_substr(@me, 100)': 截取摘要前 100 个字符。
[field:writer/]: 作者。
排除某个栏目
如果你想调用所有栏目的文章,但排除掉某个特定栏目(关于我们”这种不展示的栏目),可以使用 notypeid 属性。
<!-- 调用所有栏目,但排除栏目ID为 5 的文章 -->
{dede:arclist notypeid='5' row='10'}
<li><a href="[field:arcurl/]">[field:title/]</a></li>
{/dede:arclist}
性能优化:动态 vs. 生成静态HTML
虽然 {dede:arclist} 是动态的,但 DedeCMS 的强大之处在于它可以将动态页面生成静态HTML文件。
- 动态浏览 (默认):用户每次访问首页,服务器都需要执行
SELECT * FROM dede_archives... 这样的数据库查询,然后生成页面,对于访问量巨大的网站,这会给数据库带来压力。
- 生成静态HTML:通过后台的【生成】功能,DedeCMS 会直接把
index.htm 这个文件生成好,当用户访问时,服务器直接把这个已经写好的HTML文件发送出去,速度极快,不占用数据库资源。
如何选择?
- 对于个人博客、中小型企业网站:直接使用动态标签即可,后台定期(比如每天或每次发布新文章后)点击【更新主页】生成静态HTML,这是最佳实践。
- 对于大型门户网站、高并发访问:需要更专业的服务器配置和缓存策略,但核心的调用方式依然是
{dede:arclist}
操作步骤:
- 在后台模板中使用
{dede:arclist} 等动态标签。
- 保存模板。
- 回到 DedeCMS 后台首页,点击菜单【生成】。
- 你可以选择【一键生成所有】、【栏目页】、【主页】等,系统会根据你的模板,将页面静态化。
常见问题排查
-
为什么文章列表不更新?
- 原因:你修改了模板,但没有重新生成页面。
- 解决:进入【生成】 -> 【更新主页】或【更新所有HTML】。
-
为什么调用的文章不是我想要的?
- 原因:
typeid 或 notypeid 属性设置错误,或者 orderby 排序方式不对。
- 解决:检查标签属性,确保栏目ID和排序方式符合你的预期。
-
为什么页面加载很慢?
- 原因:
arclist 调用的文章数量太多(row 值过大)。
- 没有生成静态HTML,每次都从数据库读取。
- 服务器性能或数据库连接数不足。
- 解决:
- 减少
row 的值,比如一次只调用 10-20 条。
- 定期生成静态HTML。
- 联系空间提供商检查服务器状态。
实现 DedeCMS 的文章动态浏览,核心就是熟练使用 {dede:arclist} 标签,通过组合不同的属性,你可以轻松实现各种复杂的文章列表展示效果,对于大多数网站,“动态标签 + 定期生成静态HTML” 是一个兼顾了灵活性和性能的最佳方案。
这是 DedeCMS 最核心、最常用的标签,专门用于调用文章列表,它本身就是动态的,每次页面访问都会执行数据库查询来获取最新的数据。
基础用法(在首页模板 index.htm 中)
- 登录 DedeCMS 后台:
你的域名/dede/ - 进入模板管理:在左侧菜单找到【模板】 -> 【默认模板管理】。
- 编辑首页模板:找到并点击
index.htm后面的【修改】按钮。 - 插入代码:在你希望显示最新文章列表的位置,插入以下代码:
<h2>最新文章</h2>
<ul>
{dede:arclist row='10' titlelen='30'}
<li>
<a href="[field:arcurl/]">[field:title/]</a>
<span>[field:pubdate function="MyDate('Y-m-d', @me)"/]</span>
</li>
{/dede:arclist}
</ul>
-
代码解释:
{dede:arclist ...}: 开始调用文章列表的标签。row='10': 表示调用 10 条文章,你可以根据需要修改这个数字。titlelen='30': 表示文章标题最多显示 30 个字符,超出部分用省略号,可以修改或删除。<li>: 列表项,你可以用任何 HTML 标签来美化它。[field:arcurl/]: 文章的完整链接地址。[field:title/]: 文章的标题。[field:pubdate function="MyDate('Y-m-d', @me)"/]: 文章的发布日期。function="MyDate('Y-m-d', @me)"是一个函数,用来格式化日期显示为年-月-日的格式。{/dede:arclist}: 结束标签。
-
更新首页:保存模板后,回到 DedeCMS 后台首页,点击【生成】 -> 【更新主页】或【更新所有HTML】,这样你的首页就会显示最新的文章列表了。
(图片来源网络,侵删)
高级用法与常用属性
{dede:arclist} 标签非常强大,可以通过不同的属性实现各种复杂的动态浏览效果。
按不同栏目调用
如果你想只显示某个特定栏目的文章,可以使用 typeid 属性。
<!-- 只显示栏目ID为 1 的下的 10 篇最新文章 -->
{dede:arclist typeid='1' row='10'}
<li><a href="[field:arcurl/]">[field:title/]</a></li>
{/dede:arclist}
如何获取栏目ID?
进入【栏目管理】,鼠标放在目标栏目上,浏览器左下角状态栏会显示 typeid=数字,这个数字就是栏目ID。
排序方式
默认情况下,文章是按发布时间降序排列的(最新的在前),你也可以修改排序方式。
orderby='hot': 按点击量(人气)从高到低排序。orderby='pubdate': 按发布时间从高到低排序(默认)。orderby='rand': 随机排序。
<!-- 显示点击量最高的 10 篇文章 -->
<h2>热门文章</h2>
<ul>
{dede:arclist row='10' orderby='hot'}
<li><a href="[field:arcurl/]">[field:title/]</a> - 点击量:[field:click/]</li>
{/dede:arclist}
</ul>
显示文章摘要和缩略图
为了让列表更丰富,可以调用文章摘要和缩略图。
{dede:arclist row='5' titlelen='40' imgwidth='120' imgheight='80'}
<div class="article-item">
<a href="[field:arcurl/]">
<img src="[field:picname/]" alt="[field:title/]" width="120" height="80" />
</a>
<h3><a href="[field:arcurl/]">[field:title/]</a></h3>
<p class="summary">[field:description function='cn_substr(@me, 100)'/]...</p>
<p class="info">作者:[field:writer/] | 日期:[field:pubdate function="MyDate('Y-m-d', @me)"/] | 点击:[field:click/]</p>
</div>
{/dede:arclist}
[field:picname/]: 文章的第一张缩略图路径。[field:description/]:function='cn_substr(@me, 100)': 截取摘要前 100 个字符。[field:writer/]: 作者。
排除某个栏目
如果你想调用所有栏目的文章,但排除掉某个特定栏目(关于我们”这种不展示的栏目),可以使用 notypeid 属性。
<!-- 调用所有栏目,但排除栏目ID为 5 的文章 -->
{dede:arclist notypeid='5' row='10'}
<li><a href="[field:arcurl/]">[field:title/]</a></li>
{/dede:arclist}
性能优化:动态 vs. 生成静态HTML
虽然 {dede:arclist} 是动态的,但 DedeCMS 的强大之处在于它可以将动态页面生成静态HTML文件。
- 动态浏览 (默认):用户每次访问首页,服务器都需要执行
SELECT * FROM dede_archives...这样的数据库查询,然后生成页面,对于访问量巨大的网站,这会给数据库带来压力。 - 生成静态HTML:通过后台的【生成】功能,DedeCMS 会直接把
index.htm这个文件生成好,当用户访问时,服务器直接把这个已经写好的HTML文件发送出去,速度极快,不占用数据库资源。
如何选择?
- 对于个人博客、中小型企业网站:直接使用动态标签即可,后台定期(比如每天或每次发布新文章后)点击【更新主页】生成静态HTML,这是最佳实践。
- 对于大型门户网站、高并发访问:需要更专业的服务器配置和缓存策略,但核心的调用方式依然是
{dede:arclist}
操作步骤:
- 在后台模板中使用
{dede:arclist}等动态标签。 - 保存模板。
- 回到 DedeCMS 后台首页,点击菜单【生成】。
- 你可以选择【一键生成所有】、【栏目页】、【主页】等,系统会根据你的模板,将页面静态化。
常见问题排查
-
为什么文章列表不更新?
- 原因:你修改了模板,但没有重新生成页面。
- 解决:进入【生成】 -> 【更新主页】或【更新所有HTML】。
-
为什么调用的文章不是我想要的?
- 原因:
typeid或notypeid属性设置错误,或者orderby排序方式不对。 - 解决:检查标签属性,确保栏目ID和排序方式符合你的预期。
- 原因:
-
为什么页面加载很慢?
- 原因:
arclist调用的文章数量太多(row值过大)。- 没有生成静态HTML,每次都从数据库读取。
- 服务器性能或数据库连接数不足。
- 解决:
- 减少
row的值,比如一次只调用 10-20 条。 - 定期生成静态HTML。
- 联系空间提供商检查服务器状态。
- 减少
- 原因:
实现 DedeCMS 的文章动态浏览,核心就是熟练使用 {dede:arclist} 标签,通过组合不同的属性,你可以轻松实现各种复杂的文章列表展示效果,对于大多数网站,“动态标签 + 定期生成静态HTML” 是一个兼顾了灵活性和性能的最佳方案。
