- 使用DedeCMS自带的
GetArcList标签(推荐,最灵活) - 使用
{dede:likearticle}标签(最简单,用于相关文章)
场景分析
我们要明确你想要的“列表翻页”是什么:

(图片来源网络,侵删)
- 场景A:上一篇/下一篇:这是最简单的“翻页”,通常不需要复杂的列表。
- 场景B:相关文章列表:在文章页下方显示一个包含N篇相关文章的列表,并且这个列表本身可以分页,第一页显示5篇,第二页显示另外5篇,以此类推。
- 场景C:当前栏目下的文章列表:在文章页显示当前栏目的其他文章列表,并支持分页。
下面我们主要针对场景B(相关文章列表分页)和场景C(栏目文章列表分页)进行详细说明,因为“上一篇/下一篇”有专门的标签 {dede:pre/} 和 {dede:next/},相对简单。
使用 GetArcList 标签(最强大、最灵活)
GetArcList 是一个万能的列表调用标签,它可以在任何地方(包括内容页)调用一个文章列表,并且完美支持分页。
适用场景:
相关文章列表分页、当前栏目文章列表分页等。
核心步骤:
- 页模板中添加列表容器和分页代码。
- 使用
GetArcList调用列表。 - 在列表循环外,添加分页代码
{dede:pagelist listitem='index,pre,next,end' listsize='5'/}。
示例:实现“相关文章列表分页”
假设你想在文章内容页 article_article.htm 中,调用一个“相关文章”列表,每页显示5条,并且可以翻页。

(图片来源网络,侵删)
打开你的内容页模板文件
通常位于 /templets/default/article_article.htm。
在合适的位置(比如文章底部)添加以下代码:
<div class="related-article-list">
<h3>相关文章</h3>
<!-- 列表内容开始 -->
<ul>
{dede:arclist pagesize='5'}
<li>
<a href="[field:arcurl/]">[field:title/]</a>
<span class="date">([field:pubdate function="MyDate('Y-m-d', @me)"/])</span>
</li>
{/dede:arclist}
</ul>
<!-- 列表内容结束 -->
<!-- 分页代码开始 -->
<div class="related-page">
{dede:pagelist listitem='index,pre,next,end' listsize='5'/}
</div>
<!-- 分页代码结束 -->
</div>
代码解释
-
{dede:arclist pagesize='5'}:
(图片来源网络,侵删)pagesize='5':设置每页显示的文章数量,这是实现分页的关键。arclist默认就是调用列表,在内容页里使用时,它会自动获取当前页码,并返回对应页的数据,你不需要手动传递pageno参数。- 你可以添加其他
arclist的属性来控制调用内容,typeid='0': 调用所有栏目,如果只想调用当前栏目,可以留空或使用typeid='self'。row='10': 这里会被pagesize覆盖,所以可以不写。titlelen='30': 标题长度。orderby='pubdate': 按发布时间排序。
-
{dede:pagelist ...}:- 这个标签必须放在
{dede:arclist}循环外面。 listitem='index,pre,next,end':定义分页显示哪些元素。index: 首页pre: 上一页next: 下一页end: 末页
listsize='5':显示的页码数量(不包括首页、末页等)。
- 这个标签必须放在
后台设置 确保你的后台开启了“使用arclist标签调用分页页”选项。 路径:系统 -> 系统基本参数 -> 其他选项 -> “使用arclist标签调用分页页”,选择“是”。
使用 {dede:likearticle} 标签(最简单,专用)
{dede:likearticle} 是DedeCMS专门用于在内容页调用“相关文章”的标签,它本身就内置了分页功能。
适用场景:
仅用于调用“相关文章”并分页。
核心步骤:页模板中使用 {dede:likearticle}
- 在标签循环外添加
{dede:pagelist}
示例:使用 {dede:likearticle} 实现相关文章分页
页模板文件 article_article.htm。
在合适位置添加以下代码:
<div class="like-article-list">
<h3>猜你喜欢</h3>
<!-- 相关文章列表开始 -->
<ul>
{dede:likearticle pagesize='5' row='10'}
<li>
<a href="[field:arcurl/]">[field:title/]</a>
</li>
{/dede:likearticle}
</ul>
<!-- 相关文章列表结束 -->
<!-- 分页代码开始 -->
<div class="like-page">
{dede:pagelist listitem='pre,next' listsize='3'/}
</div>
<!-- 分页代码结束 -->
</div>
代码解释
-
{dede:likearticle pagesize='5' row='10'}:
pagesize='5':设置每页显示的文章数量,这是分页的关键。
row='10':总共要查询的文章数量,你设置了 row='20' 和 pagesize='5',那么就会分 20 / 5 = 4 页。
- 这个标签会自动根据当前文章的标题、关键词等信息来查找相关文章。
-
{dede:pagelist ...}:
- 同样,必须放在
{dede:likearticle} 循环外面。
- 这里我只显示了
pre,next (上一页/下一页),你可以根据需要添加 index,end 等。
总结与对比
特性
GetArcList (方法一)
LikeArticle (方法二)
灵活性
极高,可以调用任何符合条件的文章列表,支持所有arclist的参数。
较低,专门用于“相关文章”,调用逻辑固定。
适用场景
相关文章、栏目文章、自定义列表等任何需要列表分页的场景。
仅限“相关文章”列表分页。
使用难度
稍高,需要了解arclist的参数。
非常简单,参数少,易于上手。
性能
性能良好,但查询条件复杂时可能略慢。
性能较好,有专门的优化。
推荐选择:
- 如果你的需求就是“相关文章”,并且不需要复杂的筛选条件,直接使用
{dede:likearticle},代码最简洁。
- 如果你的需求更复杂,比如调用“当前栏目的其他文章”,或者需要自定义排序、筛选等,那么必须使用
GetArcList,它的功能更强大。
希望这个详细的教程能帮到你!
- 在标签循环外添加
{dede:pagelist}
示例:使用 {dede:likearticle} 实现相关文章分页
页模板文件 article_article.htm。
在合适位置添加以下代码:
<div class="like-article-list">
<h3>猜你喜欢</h3>
<!-- 相关文章列表开始 -->
<ul>
{dede:likearticle pagesize='5' row='10'}
<li>
<a href="[field:arcurl/]">[field:title/]</a>
</li>
{/dede:likearticle}
</ul>
<!-- 相关文章列表结束 -->
<!-- 分页代码开始 -->
<div class="like-page">
{dede:pagelist listitem='pre,next' listsize='3'/}
</div>
<!-- 分页代码结束 -->
</div>
代码解释
-
{dede:likearticle pagesize='5' row='10'}:pagesize='5':设置每页显示的文章数量,这是分页的关键。row='10':总共要查询的文章数量,你设置了row='20'和pagesize='5',那么就会分 20 / 5 = 4 页。- 这个标签会自动根据当前文章的标题、关键词等信息来查找相关文章。
-
{dede:pagelist ...}:- 同样,必须放在
{dede:likearticle}循环外面。 - 这里我只显示了
pre,next(上一页/下一页),你可以根据需要添加index,end等。
- 同样,必须放在
总结与对比
| 特性 | GetArcList (方法一) |
LikeArticle (方法二) |
|---|---|---|
| 灵活性 | 极高,可以调用任何符合条件的文章列表,支持所有arclist的参数。 |
较低,专门用于“相关文章”,调用逻辑固定。 |
| 适用场景 | 相关文章、栏目文章、自定义列表等任何需要列表分页的场景。 | 仅限“相关文章”列表分页。 |
| 使用难度 | 稍高,需要了解arclist的参数。 |
非常简单,参数少,易于上手。 |
| 性能 | 性能良好,但查询条件复杂时可能略慢。 | 性能较好,有专门的优化。 |
推荐选择:
- 如果你的需求就是“相关文章”,并且不需要复杂的筛选条件,直接使用
{dede:likearticle},代码最简洁。 - 如果你的需求更复杂,比如调用“当前栏目的其他文章”,或者需要自定义排序、筛选等,那么必须使用
GetArcList,它的功能更强大。
希望这个详细的教程能帮到你!
