这主要是通过修改 CSS 样式来实现的,核心思路是:

- 找到分页的 HTML 结构:了解 DedeCMS 是如何生成分页代码的。
- 编写 CSS 样式:使用 CSS 的
display属性(如inline-block)来改变这些元素的排列方式。
下面我将提供两种最常用的方法,并给出详细的步骤和代码。
修改 CSS 样式(推荐,最简单安全)
这是最推荐的方法,因为它不涉及修改 DedeCMS 的核心文件,只修改模板文件,升级系统时不会丢失修改。
步骤 1:找到你的列表页模板文件
你的列表页模板文件通常位于 /templets/你的模板文件夹/ 目录下,文件名可能是 list_article.htm 或其他自定义名称,请使用 FTP 或主机管理面板找到这个文件。
步骤 2:在模板文件中添加自定义 CSS
在 list_article.htm 文件的 <head> 标签内,或者在该文件的末尾(</body> 标签之前),添加以下 <style> 代码块。

<style type="text/css">
/* 分页容器样式 */
.dede_pages {
text-align: center; /* 让分页内容居中显示 */
margin: 20px 0;
}
/* 核心样式:将分页列表项(上一页、1、2、3...下一页)设置为行内块元素 */
.dede_pages ul {
list-style: none; /* 去掉列表前的点 */
padding: 0;
margin: 0;
display: inline-block; /* 关键:让整个ul变成一个行内块,可以和它旁边的元素(如果有)在同一行 */
}
.dede_pages li {
display: inline-block; /* 关键:让每个列表项(li)变成行内块,这样它们就会水平排列 */
margin: 0 5px; /* 调整页码之间的间距 */
}
/* 去掉页码之间的分隔线(如果默认有) */
.dede_pages a, .dede_pages span {
display: inline-block; /* 确保链接和文本也能正确应用边距和样式 */
padding: 5px 10px;
border: 1px solid #ddd;
text-decoration: none;
color: #333;
}
.dede_pages a:hover {
background-color: #f0f0f0;
}
.dede_pages .thisclass {
background-color: #f0f0f0;
border-color: #ccc;
font-weight: bold;
}
</style>
代码解释:
.dede_pages li { display: inline-block; }:这是最核心的一行,默认情况下,<li>是块级元素(display: block;),会占据一整行,通过设置为inline-block,它就变成了可以和其它元素在同一行显示的“行内块”。.dede_pages ul { display: inline-block; }:这一行是为了确保整个分页列表作为一个整体,能够正确地居中显示(因为父元素.dede_pages的text-align: center生效)。margin: 0 5px;:调整了每个页码按钮之间的左右间距,你可以根据需要修改这个值。
步骤 3:检查并保存
保存 list_article.htm 文件,然后刷新你的网站列表页,你应该就能看到分页已经变成横排了。
修改 PHP 模板文件(适用于旧版或特定模板)
如果你的模板没有使用标准的 .dede_pages 类名,或者你想从根本上改变 HTML 结构,可以直接修改 PHP 模板文件。
步骤 1:找到分页标签
在 list_article.htm 文件中,找到类似这样的分页标签:

{dede:pagelist listsize='5' listitem='pre,next,pageno,option'}
步骤 2:修改分页标签的 listitem 属性
listitem 属性用于控制显示哪些分页元素,默认的 pre,next,pageno,option 会显示“上一页”、“下一页”、“页码”和“下拉跳转框”。
如果你想让它更简洁,可以只保留“上一页”、“下一页”和“页码”:
{dede:pagelist listsize='5' listitem='pre,next,pageno'}
步骤 3:修改分页的 HTML 结构(可选)
如果你对默认生成的 HTML 结构不满意,可以手动修改,但通常配合方法一的 CSS 就足够了,这里不展开,因为方法一已经能解决 99% 的需求。
补充:如何修改“上一页”和“下一页”的文字?
有时候你可能想把“上一页”和“下一页”换成“<”和“>”或者“上一条”、“下一条”。
修改 CSS(推荐)
这是最简单的方法,直接用 CSS 的 :after 或 :before 伪元素来覆盖文字。
在方法一的 CSS 基础上,增加以下样式:
<style type="text/css">
/* ... (方法一中的所有CSS代码) ... */
/* 修改上一页的文字 */
.dede_pages .pre a::after {
content: '«'; /* 使用 « 符号代替“上一页” */
margin-left: 5px;
}
.dede_pages .pre a span {
display: none; /* 隐藏原来的“上一页”文字 */
}
/* 修改下一页的文字 */
.dede_pages .next a::before {
content: '»'; /* 使用 » 符号代替“下一页” */
margin-right: 5px;
}
.dede_pages .next a span {
display: none; /* 隐藏原来的“下一页”文字 */
}
</style>
修改 PHP 文件(不推荐,升级会失效)
如果你想从根本上修改文字,需要修改 DedeCMS 的核心文件 /include/arc.listview.class.php。
- 用代码编辑器打开
/include/arc.listview.class.php。 - 搜索
GetPageListDM函数。 - 在函数内找到定义
上一页和下一页文字的地方(通常是$prepage和$nextpage变量的赋值语句),然后修改它们。
找到类似 $prepage = "<li><a href='".$purl."'>上一页</a></li>"; 的代码,将其中的“上一页”替换成你想要的文字。
警告:直接修改核心文件在系统升级后会被覆盖,需要重新修改。强烈建议优先使用 CSS 方法。
| 需求 | 推荐方法 | 优点 | 缺点 |
|---|---|---|---|
| 将分页从竖排变横排 | 修改 CSS | 简单、安全、不影响系统升级 | 需要懂一点 CSS 基础 |
| 修改“上一页/下一页”文字 | 修改 CSS (伪元素) | 简单、安全、灵活 | 文字被隐藏,可能影响 SEO(但影响极小) |
| 修改“上一页/下一页”文字 | 修改 PHP 文件 | 彻底改变源码 | 升级后失效,有风险 |
对于你的问题“dede 上一页 下一页 竖排变横排”,直接使用方法一,添加那段 CSS 代码到你的列表页模板中,即可完美解决问题。
