{dede:pagelist} 标签的基本语法
{dede:pagelist} 通常与 {dede:list} 或 {dede:arclist} 标签一起使用,放在它们循环体的外部。

(图片来源网络,侵删)
基本结构示例:
{dede:list pagesize='10'}
<!-- 这里是列表内容循环 -->
<li>
<a href="[field:arcurl/]">[field:title/]</a>
<span>[field:pubdate function="MyDate('Y-m-d',@me)"/]</span>
</li>
{/dede:list}
<!-- 分页导航代码 -->
<div class="dede_pages">
<ul class="pagelist">
{dede:pagelist listitem="info,index,end,pre,next,pageno" listsize="5"/}
</ul>
</div>
{dede:pagelist} 核心属性详解
{dede:pagelist} 的显示效果和功能主要由其 listitem 和 listsize 属性控制。
listitem 属性 (最重要)
这个属性用于控制分页导航栏上显示哪些元素,多个元素用英文逗号 隔开。
可选值及其含义:

(图片来源网络,侵删)
| 值 | 说明 | 示例 HTML |
|---|---|---|
index |
首页 | <a href='...'>首页</a> |
pre |
上一页 | <a href='...'>上一页</a> |
pageno |
页码 | <span class='thisclass'>1</span> 或 <a href='...'>2</a> |
next |
下一页 | <a href='...'>下一页</a> |
end |
末页 | <a href='...'>末页</a> |
info |
分页信息 | <span class='pageinfo'>共 <strong>10</strong> 页/<strong>100</strong> 条</span> |
option |
下拉跳转菜单 | <select>...</select> (包含所有页码) |
plus |
附加功能 | 通常用于显示“/”等分隔符 |
常用组合示例:
-
简洁型 (只显示上一页、页码、下一页):
{dede:pagelist listitem='pre,pageno,next' listsize='2'/}效果可能像:
« 上一页 1 2 3 4 5 下一页 » -
标准型 (包含首页、末页和详细信息):
(图片来源网络,侵删){dede:pagelist listitem='index,pre,next,end,info,pageno' listsize='3'/}效果可能像:
首页 上一页 ... 3 4 5 [6] 7 8 9 ... 下一页 末页 共10页/100条 -
完整型 (包含所有元素):
{dede:pagelist listitem='index,pre,next,end,option,info,pageno' listsize='5'/}
listsize 属性
这个属性用于控制页码列表显示的“宽度”,即当前页码左右两侧各显示多少个页码。
示例:
listsize='2':如果当前在第 5 页,会显示3, 4, [5], 6, 7。listsize='3':如果当前在第 5 页,会显示2, 3, 4, [5], 6, 7, 8。- 如果总页数较少,
listsize不会导致页码重复或溢出。
{dede:pagelist} 的样式自定义
默认情况下,{dede:pagelist} 生成的 HTML 结构比较固定,我们可以通过 CSS 来美化它。
默认生成的 HTML 结构
<ul class="pagelist">
<li><a href="...">首页</a></li>
<li><a href="...">上一页</a></li>
<li><span class="thisclass">1</span></li> <!-- 当前页 -->
<li><a href="...">2</a></li>
<li><a href="...">3</a></li>
<li><a href="...">下一页</a></li>
<li><a href="...">末页</a></li>
<li><span class="pageinfo">共 10 页</span></li>
</ul>
关键 class 名称:
thisclass: 应用于当前页码的<span>pageinfo: 应用于分页信息文本的<span>
CSS 样式示例
你可以将以下 CSS 添加到你的模板的 CSS 文件中,以获得一个美观的分页效果。
/* 分页容器样式 */
.dede_pages {
text-align: center;
margin: 20px 0;
font-size: 14px;
}
/* 分页列表容器 */
.pagelist {
display: inline-flex; /* 使用 flex 布局让列表项水平排列 */
list-style: none;
padding: 0;
margin: 0;
border: 1px solid #e0e0e0;
border-radius: 4px;
overflow: hidden; /* 确保圆角生效 */
}
/* 每个分页项的样式 */
.pagelist li {
margin: 0;
}
.pagelist li a,
.pagelist li span {
display: block;
padding: 8px 12px;
text-decoration: none;
color: #333;
border-right: 1px solid #e0e0e0; /* 分隔线 */
}
/* 最后一项的右边框去掉 */
.pagelist li:last-child a,
.pagelist li:last-child span {
border-right: none;
}
/* 链接的悬停效果 */
.pagelist li a:hover {
background-color: #f0f0f0;
color: #007bff;
}
/* 当前页码的样式 */
.pagelist li span.thisclass {
background-color: #007bff;
color: #fff;
cursor: default; /* 当前页不可点击 */
}
/* 分页信息样式 */
.pagelist li span.pageinfo {
padding: 8px 12px;
color: #666;
border-right: 1px solid #e0e0e0;
}
常见问题与解决
分页样式混乱或不起作用
- 原因: CSS 选择器优先级不够,或者 CSS 文件未正确加载。
- 解决方法:
- 使用浏览器开发者工具(F12)检查
ul.pagelist和span.thisclass等元素是否被你的其他 CSS 规则覆盖。 - 在 CSS 选择器前增加更具体的选择器,
body .pagelist li span.thisclass。 - 确保你的 CSS 文件在模板中被正确引入。
- 使用浏览器开发者工具(F12)检查
想要修改“首页”、“末页”等显示的文字
- 原因: 这些是 DedeCMS 的默认文字。
- 解决方法:
- 直接修改模板文件(不推荐,升级会失效): 打开
/include/arc.listview.class.php文件,搜索GetPageListDM函数,找到$maininfo = "共{$totalpage}页".$maininfo;这类代码,修改其中的字符串。 - 推荐方法(使用语言包): 修改
/templets/default/style/dedecms.css中的after或before伪元素(如果存在),但这通常不直接管用,最稳妥的方法是使用第一种方法,并做好备份。
- 直接修改模板文件(不推荐,升级会失效): 打开
如何让分页在移动端更美观?
-
解决方法: 使用响应式 CSS。
- 在小屏幕上,可以隐藏首页、末页,只保留上一页、下一页和页码。
- 或者使用
@media查询来调整pagelist的布局和字体大小。
示例:
@media screen and (max-width: 768px) { .pagelist { flex-wrap: wrap; /* 允许换行 */ justify-content: center; } .pagelist li { margin: 2px; /* 增加间距 */ } .pagelist li a, .pagelist li span { padding: 6px 10px; font-size: 12px; } /* 可选:隐藏首页末页 */ .pagelist li a[href*="index"], .pagelist li a[href*="end"] { display: none; } }
{dede:pagelist} 是 DedeCMS 列表页功能的核心,要掌握它,你需要:
- 理解基本语法:知道它放在
{dede:list}循环体外。 - 熟练使用
listitem:根据需求组合显示不同的分页元素。 - 掌握
listsize:控制页码显示的数量。 - 学会自定义 CSS:通过
.pagelist,.thisclass等类名来美化分页样式,使其与网站整体风格保持一致。
希望这份详细的教程能帮助你完全掌握 DedeCMS 的分页功能!
