在织梦DedeCMS中,列表页的分页功能是通过一个强大的内置标签 {dede:pagelist} 来实现的,这个标签可以生成上一页、页码、下一页、首页、末页等所有分页元素。

核心标签:{dede:pagelist}
{dede:pagelist} 是专门用来生成分页导航链接的标签,它必须在列表页循环标签 {dede:list} 或 {dede:arclist} 的外部使用。
基本用法
在您的列表页模板文件(通常是 list_栏目ID.htm)中,您只需要在 {dede:list} 循环结束后,放置 {dede:pagelist} 标签即可。
示例代码:
{dede:list pagesize='10'}
<h3><a href="[field:arcurl/]">[field:title/]</a></h3>
<p>[field:description function='cn_substr(@me,100)']...</p>
<p>发布时间:[field:pubdate function="MyDate('Y-m-d',@me)"]</p>
<hr>
{/dede:list}
<!-- 分页导航代码 -->
<div class="dede_pages">
<ul class="pagelist">
{dede:pagelist listsize='5' listitem='pre,next,pageno,option'}
</ul>
</div>
代码解释:

{dede:list}: 循环输出文章列表。pagesize='10': 设置每页显示10条记录。{dede:pagelist}: 生成分页导航。listsize='5': 设置页码显示的个数,当前在第5页,listsize='5'就会显示 3, 4, 5, 6, 7 这几个页码。listitem='pre,next,pageno,option': 设置要显示的分页项目,这是实现“下一页”的关键。
listitem 参数详解(如何控制显示哪些元素)
listitem 参数决定了分页导航中显示哪些元素,您可以通过组合不同的值来定制您的分页样式。
listitem 可用的值包括:
pre: 上一页next: 下一页pageno: 页码option: 跳转到指定页的下拉框index: 首页end: 末页
组合示例:
-
只显示上一页和下一页(最简洁):
(图片来源网络,侵删){dede:pagelist listitem='pre,next'}输出效果:
<a href="list_1_2.html">下一页</a> -
显示上一页、页码、下一页(最常用):
{dede:pagelist listitem='pre,next,pageno'}输出效果:
<a href="list_1_1.html">上一页</a> <span class="thisclass">1</span> <a href="list_1_2.html">2</a> <a href="list_1_3.html">3</a> ... <a href="list_1_2.html">下一页</a> -
显示首页、上一页、页码、下一页、末页(最完整):
{dede:pagelist listitem='index,end,pre,next,pageno'} -
包含跳转下拉框(方便用户快速跳转):
{dede:pagelist listitem='pre,next,pageno,option'}输出效果: 会包含一个类似
<select onchange="location.href=this.options[this.selectedIndex].value">的下拉菜单。
pagelist 标签常用属性
除了 listitem 和 listsize,{dede:pagelist} 还有一些其他有用的属性:
listitem: 必需,定义要显示的分页项。listsize: 可选,页码显示的个数。info: 可选,自定义分页信息文本。info='共{totalresult}条记录'。template: 非常重要,用于自定义分页的HTML模板。
高级用法:自定义分页样式(使用 template 属性)
默认情况下,{dede:pagelist} 生成的HTML结构和CSS类名可能不符合您网站的设计,这时,您可以使用 template 属性来完全自定义分页的HTML结构。
步骤:
-
创建模板文件: 在您的模板目录(通常是
/templets/default/或您自定义的模板目录)下,创建一个新的HTML文件,my_pagination.htm。 -
编写模板内容: 在
my_pagination.htm文件中,使用特定的占位符来代表分页的各个部分。可用的占位符:
@index: 首页链接@pre: 上一页链接@next: 下一页链接@end: 末页链接@pageno: 页码列表@option: 跳转下拉框@info: 分页信息文本
示例
my_pagination.htm文件内容:<!-- 首页 --> <a href="@index">首页</a> <!-- 上一页 --> <a href="@pre" class="prev-page">上一页</a> <!-- 页码 --> <div class="page-numbers"> @pageno </div> <!-- 下一页 --> <a href="@next" class="next-page">下一页</a> <!-- 末页 --> <a href="@end">末页</a> <!-- 分页信息 --> <span class="page-info">@info</span> -
在列表页模板中调用: 在您的列表页模板中,使用
template属性指向您刚刚创建的模板文件。{dede:pagelist listitem='index,pre,next,end,pageno,info' template='my_pagination.htm' info='共{totalresult}条记录'}
最终效果:
织梦会读取 my_pagination.htm 的内容,并将 @index, @pre 等占位符替换成实际的链接和HTML,最终生成符合您自定义样式的分页导航。
常见问题与注意事项
-
{dede:pagelist}的位置: 一定要确保{dede:pagelist}在{dede:list}或{dede:arclist}循环标签的外部,放在循环内部是错误的,会导致重复输出。 -
样式问题: 织梦默认会给分页元素添加一些CSS类,如
thisclass(当前页),pre,next,page等,您可以在您的CSS文件中针对这些类名进行样式设计。.dede_pages .thisclass { background-color: #ff6600; color: #fff; padding: 2px 8px; border: 1px solid #ff6600; } .dede_pages a { padding: 2px 8px; border: 1px solid #ddd; text-decoration: none; } .dede_pages a:hover { background-color: #f0f0f0; } -
URL结构: 织梦默认生成的分页URL是
list_栏目ID_页码.html的形式,如果您想修改为其他形式(如list_栏目ID/p_页码.html),需要修改后台的“系统” -> “系统基本参数” -> “核心设置”中的“栏目列表命名规则”和“文章命名规则”,但这通常比较复杂,建议使用伪静态规则来实现,而不是直接修改分页URL生成逻辑。
要实现织梦列表页的“下一页”功能,核心就是使用 希望这份详细的解释能帮助您完美地实现列表页的分页功能!{dede:pagelist}
{dede:pagelist listitem='pre,next'}{dede:pagelist listitem='pre,next,pageno'}template 属性创建自定义模板文件,实现完全个性化的分页导航样式。
