修改分页显示的字符(“上一页” 改为 “Prev”)
这是最常见的需求,通常通过修改模板文件来实现。

找到并编辑分页模板
DedeCMS 的分页模板文件位于 /include/arc.listview.class.php 中,但强烈不建议直接修改这个核心文件,因为升级会被覆盖,正确的方法是通过修改你的模板文件来覆盖默认行为。
在你的模板文件夹(/templets/default/)中,找到你正在使用的列表模板文件,通常是 list_article.htm。
定位分页标签

在 list_article.htm 文件中,找到分页的调用标签,它通常是这样的:
<div class="dede_pages">
<ul class="pagelist">
{dede:pagelist listitem="info,index,end,pre,next,pageno" listsize="5" /}
</ul>
</div>
这里的 {dede:pagelist} 就是控制分页显示的标签。
使用 listitem 属性控制显示项
listitem 属性决定了分页显示哪些部分,你可以通过修改它来隐藏或显示你想要的内容。

info: 显示 “共几页,几条信息”index: 显示首页pre: 显示上一页pageno: 显示页码next: 显示下一页end: 显示末页option: 显示跳转下拉框
自定义分页文字(高级方法)
如果你想在模板中直接自定义分页文字,而不仅仅是隐藏它们,可以采用以下方法:
在 list_article.htm 中,你可以用 if 条件语句来分别控制上一页和下一页的显示,并自定义文字。
示例:将“上一页”改为“Prev”,“下一页”改为“Next”
<div class="dede_pages">
<ul class="pagelist">
<!-- 上一页 -->
{dede:pagelist listitem='pre' runphp='yes'}
if(@me == "<a href='javascript:;'>上一页</a>") {
@me = "<a href='javascript:;'>Prev</a>";
}
else {
@me = @me;
}
{/dede:pagelist}
<!-- 页码 -->
{dede:pagelist listitem='pageno' listsize='5' /}
<!-- 下一页 -->
{dede:pagelist listitem='next' runphp='yes'}
if(@me == "<a href='javascript:;'>下一页</a>") {
@me = "<a href='javascript:;'>Next</a>";
}
else {
@me = @me;
}
{/dede:pagelist}
</ul>
</div>
代码解释:
{dede:pagelist listitem='pre' runphp='yes'}:我们只调用“上一页”部分,并启用runphp。if(@me == "..."):判断当前生成的分页代码是否是默认的“上一页”链接。@me = "...":如果是,就将其内容替换为你想要的文字(如 "Prev")。- 对“下一页”做同样的处理。
修改分页的样式(CSS)
如果你想改变分页列表的外观,比如去掉边框、改变颜色、调整间距等,只需修改 CSS 文件即可。
找到 CSS 文件
在你的模板文件夹(/templets/default/)中,找到样式表文件 style.css 或 dedecms.css。
定位并修改分页 CSS 类
在 CSS 文件中,找到与分页相关的类,通常有:
.pagelist: 分页列表的容器<ul>。.pagelist li: 分页列表中的每一项<li>。.pagelist a: 分页的链接<a>。.pagelist .thisclass: 当前页的<li>样式。
示例:修改一个现代化的分页样式
假设你的 HTML 结构是:
<ul class="pagelist">
<li><a href="javascript:;">Prev</a></li>
<li><a href="javascript:;">1</a></li>
<li class="thisclass"><a href="javascript:;">2</a></li>
<li><a href="javascript:;">3</a></li>
<li><a href="javascript:;">Next</a></li>
</ul>
你可以在 CSS 文件中添加或修改以下样式:
/* 分页列表容器 */
.pagelist {
display: flex;
list-style: none;
padding: 0;
margin: 20px 0;
justify-content: center;
}
/* 分页列表项 */
.pagelist li {
margin: 0 5px;
}
/* 分页链接 */
.pagelist a {
display: block;
padding: 8px 12px;
border: 1px solid #ddd;
border-radius: 4px;
text-decoration: none;
color: #333;
transition: all 0.3s ease;
}
/* 鼠标悬停效果 */
.pagelist a:hover {
background-color: #f0f0f0;
border-color: #999;
}
/* 当前页样式 */
.pagelist .thisclass a,
.pagelist .thisclass {
background-color: #007bff;
color: #fff;
border-color: #007bff;
font-weight: bold;
}
修改分页链接的 URL 结构(高级)
如果你想修改分页链接的格式,例如将 list.php?tid=1&PageNo=2 改成 list/1_2.html 这样的伪静态形式,这需要修改核心函数。
⚠️ 警告:此操作涉及修改核心文件,请务必先备份!升级 DedeCMS 时,这些修改会被覆盖,需要重新操作。
找到核心函数文件
分页 URL 的生成逻辑在 /include/arc.listview.class.php 文件中。
修改 GetPageListDM 函数
打开 arc.listview.class.php 文件,找到 GetPageListDM 函数,这个函数负责生成分页的 HTML 代码。
你需要找到拼接 URL 的地方,通常在函数的末尾,默认的代码可能是这样的:
// ... 其他代码 ... $listdd = "<li><a href='".$purl."PageNo=$i'>".$i."</a></li>"; // ... 其他代码 ...
你需要修改这里的 $purl 变量,使其符合你的伪静态规则。
示例:修改为 /list/1_2.html 格式
你需要找到生成 $purl 的部分,它通常在函数的开头,找到类似这样的代码:
$purl = $this->GetCurUrl(); $typedir = $this->Fields['typedir'];
你需要根据你的伪静态规则重新构造 $purl,如果你的栏目列表页伪静态规则是 list/{tid}_{PageNo}.html,你可以这样修改:
// 在 GetPageListDM 函数中,找到构造 $purl 的部分
// ... 原始代码可能如下 ...
// $purl = $this->GetCurUrl();
// 修改为:
$typedir = preg_replace('/\/$/', '', $this->Fields['typedir']); // 去掉末尾的斜杠
$tid = $this->TypeID;
$purl = $typedir . '_';
在生成链接的地方,确保它使用这个新的 $purl:
// 原来的代码 // $listdd = "<li><a href='".$purl."PageNo=$i'>".$i."</a></li>"; // 修改为 $listdd = "<li><a href='".$purl.$i.".html'>".$i."</a></li>";
配合伪静态规则
仅仅修改 PHP 文件是不够的,你还需要在服务器的伪静态配置文件中添加相应的规则。
对于 Nginx: 在你的网站配置文件中添加:
rewrite ^/list/([0-9]+)_([0-9]+)\.html$ /list.php?tid=$1&PageNo=$2 last;
对于 Apache:
在 .htaccess 文件中添加:
RewriteRule ^list/([0-9]+)_([0-9]+)\.html$ /list.php?tid=$1&PageNo=$2 [L]
总结与建议
| 修改目标 | 推荐方法 | 涉及文件 | 风险等级 |
|---|---|---|---|
| 修改分页文字 (如 上一页/下一页) | 修改模板文件 (list_article.htm),使用 runphp |
/templets/你的模板/list_article.htm |
低 |
| 修改分页样式 (CSS) | 修改 CSS 文件 | /templets/你的模板/style.css |
低 |
| 修改分页链接格式 (URL) | 修改核心文件 (arc.listview.class.php) + 服务器伪静态配置 |
/include/arc.listview.class.php, .htaccess 或 Nginx 配置 |
高 (升级会覆盖) |
对于绝大多数用户,场景一和场景二已经足够满足需求。场景三是高级操作,仅当你对 DedeCMS 和服务器配置非常熟悉时才建议尝试。
