- 修改分页的 HTML 结构和 CSS 样式:这是最核心的部分,决定了分页块长什么样。
- 修改分页的显示逻辑:比如自定义“上一页/下一页”的文字,或者修改每页显示的条数等。
下面我将分步详细讲解如何进行修改。

第一步:定位核心文件
DedeCMS 的列表分页功能由两个核心文件控制:
include/arc.listview.class.php:分页的逻辑处理文件,分页的算法、获取总页数、当前页码等都在这里计算,如果你需要修改分页的逻辑(比如修改上一页/下一页的文字),需要修改这个文件。templets/default/list_page.htm:分页的模板文件,它定义了分页块最终的 HTML 结构和默认的样式。99% 的样式修改和结构修改都在这里进行。
重要提示:强烈建议在修改文件前,先对原文件进行备份!
第二步:修改分页样式和结构 (list_page.htm)
这是最常用、最安全的修改方式,你只需要修改模板文件,而不用去动核心逻辑文件。
备份原文件
复制 templets/default/list_page.htm 文件,并重命名一个备份,list_page.htm.bak。

打开并编辑 list_page.htm
默认的 list_page.htm 内容非常简单,通常是这样的:
<div class="dede_pages">
<ul class="pagelist">
{dede:pagelist listitem="info,index,end,pre,next,pageno" listsize="5"/}
</ul>
</div>
这里的 {dede:pagelist} 是一个底层模板标签,它会根据 arc.listview.class.php 中的逻辑,生成具体的分页链接和文字。
理解 {dede:pagelist} 标签的属性
listitem 属性用来控制显示哪些分页元素,你可以根据需要增减:
index:首页pre:上一页pageno:页码next:下一页end:尾页info:页码信息 (如:共 45 条记录,当前第 1/3 页)
listsize 属性控制显示多少个页码按钮。

自定义分页的 HTML 和 CSS
我们可以通过重写 {dede:pagelist} 的底层模板,来完全控制分页的 HTML 结构,这是一个更高级但更灵活的方法。
操作方法:
在 templets/default/ 目录下,新建一个文件 listpage.htm,这个文件将作为分页的底层模板。
示例:一个现代化的分页样式
在 listpage.htm 中写入以下代码:
<li><a href='javascript:void(0);' class='pageinfo'>共{totalresult}条</a></li>
<li><a href='{prepage}' class='pre'>上一页</a></li>
{pagelist}
<li><a href='{nextpage}' class='next'>下一页</a></li>
<li><a href='index_{page}.html' class='page-en'>尾页</a></li>
代码解释:
{totalresult}:总记录数{prepage}:上一页的链接{nextpage}:下一页的链接{pagelist}:页码列表,这个标签本身会循环生成多个<li>,每个<li>包含一个页码链接。{page}:当前页码{totalpage}:总页数
修改 list_page.htm 以使用新的模板
回到 templets/default/list_page.htm 文件,将其修改为:
<div class="dede_pages">
<ul class="pagelist">
{dede:pagelist listitem="info,index,end,pre,next,pageno" listsize="5" template='listpage'/}
</ul>
</div>
关键点在于增加了 template='listpage' 属性,这告诉 {dede:pagelist} 标签去使用我们刚刚创建的 listpage.htm 模板来渲染分页。
添加 CSS 样式
在你的网站 CSS 文件(style.css)中,为分页添加样式,使其看起来更美观。
/* 分页容器样式 */
.dede_pages {
text-align: center;
margin: 20px 0;
font-size: 12px;
}
.dede_pages .pagelist {
display: inline-block;
list-style: none;
padding: 0;
margin: 0;
}
.dede_pages .pagelist li {
float: left;
margin: 0 5px;
}
.dede_pages .pagelist li a {
display: block;
padding: 5px 12px;
border: 1px solid #ddd;
color: #333;
text-decoration: none;
border-radius: 3px;
}
.dede_pages .pagelist li a:hover {
background-color: #f8f8f8;
border-color: #ccc;
}
/* 当前页样式 */
.dede_pages .pagelist li a.curpage {
background-color: #007bff;
color: #fff;
border-color: #007bff;
}
/* 上一页/下一页样式 */
.dede_pages .pagelist li a.pre,
.dede_pages .pagelist li a.next {
padding: 5px 15px;
}
/* 首页/尾页样式 */
.dede_pages .pagelist li a.page-en {
padding: 5px 12px;
}
第三步:修改分页逻辑 (arc.listview.class.php)
如果你需要修改分页的“文字”或“行为”,就需要修改这个文件。
场景:修改“上一页”和“下一页”的文字
默认是“上一页”和“下一页”,你可能想改成 « 和 » 或者 «上一页 和 下一页»。
- 打开
include/arc.listview.class.php文件。 - 使用编辑器的“查找”功能,搜索
GetPageListDM函数。 - 在函数内,找到定义
$prepage和$nextpage变量的地方,通常是$prepage = "<a href='".$purl."'>$prepage</a>";和$nextpage = "<a href='".$purl."'>$nextpage</a>";。 - 在这两行代码之前,找到定义
$prepage和$nextpage文字的地方,$prepage = "上一页";和$nextpage = "下一页";。 - 将它们修改为你想要的文字。
示例:
// 在 GetPageListDM 函数内找到类似这样的代码
// ...
$prepage = "上一页"; // 修改这里
$nextpage = "下一页"; // 修改这里
// ...
$purl .= "&TotalResult=$totalresult";
$plist = '';
if($this->PageNo != 1){
$prepage.="<a href='".$purl."'>".$prepage."</a>";
$plist .= $prepage;
}
// ...
注意:直接修改核心文件在升级 DedeCMS 时可能会被覆盖,因此修改后请务必记下你的修改内容,以便未来升级后重新应用。
第四步:修改每页显示条数
这个设置不在分页文件里,而是在列表页模板的查询标签中。
打开你的列表页模板文件, 通过修改 最佳实践流程: 通过以上步骤,你就可以灵活地自定义 DedeCMS 的列表分页了。templets/default/list_article.htm,找到 {dede:list}
{dede:list pagesize='20'}
<!-- 你的列表内容 -->
<li><a href="[field:arcurl/]">[field:title/]</a></li>
{/dede:list}
pagesize 属性的值,就可以控制列表页每页显示的文章数量。
总结与最佳实践
修改目标
涉及文件
方法
风险
修改分页样式、HTML结构
templets/default/list_page.htmtemplets/default/listpage.htm (新建)推荐方法:创建新的底层模板
listpage.htm,并在 list_page.htm 中通过 template 属性调用。低风险,只涉及模板,不影响核心逻辑,升级安全。
修改分页文字(如上一页/下一页)
include/arc.listview.class.php在
GetPageListDM 函数中修改对应的变量值。高风险,修改了核心文件,升级时会被覆盖。
修改每页显示条数
templets/default/你的列表模板.htm修改
{dede:list} 标签的 pagesize 属性。低风险,属于模板常规设置。
templets/default/list_page.htm。templets/default/ 下新建 listpage.htm,编写你想要的 HTML 结构。list_page.htm 中,给 {dede:pagelist} 添加 template='listpage' 属性。.pagelist 相关的类添加样式。
include/arc.listview.class.php。
