核心要点
织梦的分页调用非常简单,核心就是使用一个固定的系统变量:{dede:pagelist listsize='5' listitem='index pre pageno next end '/}

(图片来源网络,侵删)
你只需要把这个代码放到你需要显示分页的位置即可。
在列表页模板中添加分页代码
假设你的列表页模板文件是 list_article.htm。
-
找到列表循环部分: 找到你调用文章列表的
dede:list标签,这个标签循环输出每一篇文章。<div class="list"> {dede:list pagesize='10'} <div class="list-item"> <h3><a href="[field:arcurl/]">[field:title/]</a></h3> <p class="info">[field:pubdate function="MyDate('Y-m-d',@me)"/] | [field:click/]</p> <p class="summary">[field:description function="cn_substr(@me, 150)"/]...</p> </div> {/dede:list} </div> -
在列表循环后添加分页代码: 非常重要的一点是:分页代码
{dede:pagelist}必须放在{dede:list}标签的闭合标签{/dede:list}之后,不能放在循环内部。
(图片来源网络,侵删)将以下代码添加到
</div>(或你的列表容器结束标签)之后:<!-- 文章列表结束 --> <!-- 分页代码开始 --> <div class="dede_pages"> <ul class="pagelist"> {dede:pagelist listsize='5' listitem='index pre pageno next end '/} </ul> </div> <!-- 分页代码结束 -->
完整示例 (list_article.htm):
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">{dede:field.title/}_{dede:global.cfg_webname/}</title>
</head>
<body>
<h1>{dede:field.title/}</h1>
<p>{dede:field.description/}</p>
<hr>
<!-- 文章列表区域 -->
<div class="list">
{dede:list pagesize='10'}
<div class="list-item">
<h3><a href="[field:arcurl/]">[field:title/]</a></h3>
<p class="info">发布时间:[field:pubdate function="MyDate('Y-m-d',@me)"/] | 点击:[field:click/]</p>
<p class="summary">[field:description function="cn_substr(@me, 150)"/]...</p>
</div>
{/dede:list}
</div>
<!-- ====================================== -->
<!-- 关键:分页代码放在 {dede:list} 循环之后 -->
<!-- ====================================== -->
<div class="dede_pages">
<ul class="pagelist">
{dede:pagelist listsize='5' listitem='index pre pageno next end '/}
</ul>
</div>
</body>
</html>
{dede:pagelist} 标签常用参数详解
{dede:pagelist} 标签非常灵活,可以通过参数控制分页的显示样式和内容。
基本语法
{dede:pagelist listsize='数字' listitem='项目' listtype='属性'}
参数详解
-
listsize='数字'
(图片来源网络,侵删)- 作用:设置当前页码前后显示的页码链接数量。
- 示例:
listsize='5'表示在当前页码(比如第3页)的前后各显示5个页码链接(会显示 1, 2, 3, 4, 5, 6, 7, 8 这类)。 - 默认值:通常为
3。
-
listitem='项目'- 作用:控制分页导航中显示哪些项目,多个项目用空格隔开。
- 常用项目:
index:首页pre:上一页pageno:页码(数字,如 1, 2, 3...)next:下一页end:末页option:跳转下拉框(允许用户直接跳转到指定页)
- 示例:
listitem='index pre next end':只显示首页、上一页、下一页、末页。listitem='pre pageno next':只显示上一页、页码、下一页。listitem='index pre pageno next end option':显示所有常用项目。
-
listtype='属性'- 作用:设置分页链接的样式。
- 常用值:
text:纯文本样式(默认)。number:数字样式。select:下拉列表样式(配合option项目使用)。
- 示例:
listtype='select'会生成一个下拉菜单形式的分页。
综合应用示例
示例1:简洁分页(只显示上下页和页码)
{dede:pagelist listitem='pre pageno next' listsize='2'/}
示例2:完整分页(包含首页、末页和跳转框)
{dede:pagelist listitem='index pre pageno next end option' listsize='3'/}
示例3:自定义分页样式(结合CSS)
织梦分页会自动生成一些class,方便我们用CSS来美化,常见的class有:
.pageitem:普通页码项.pageon:当前页码项.pagepre:上一页.pagenext:下一页
你可以给分页容器加上CSS类,然后进行样式定制。
<!-- 在HTML中 -->
<div class="my-pagination">
{dede:pagelist listitem='index pre pageno next end' listsize='3'/}
</div>
<!-- 在CSS文件中 -->
.my-pagination {
text-align: center;
margin: 20px 0;
}
.my-pagination ul {
list-style: none;
display: inline-block;
}
.my-pagination ul li {
float: left;
margin: 0 5px;
}
.my-pagination .pageon {
background-color: #007bff;
color: #fff;
padding: 5px 10px;
border-radius: 3px;
}
.my-pagination a {
display: block;
padding: 5px 10px;
border: 1px solid #ddd;
text-decoration: none;
color: #333;
}
.my-pagination a:hover {
background-color: #f0f0f0;
}
后台设置:确保列表栏目已开启“使用列表”
有时候分页不显示,问题可能出在后台的栏目设置上。
- 登录织梦后台。
- 进入【核心】 -> 【频道管理】 -> 【栏目管理】。
- 找到你对应的列表栏目,点击后面的【修改】。
- 在栏目修改页面,找到“高级选项”选项卡。
- 勾选 “使用列表” 这个选项。
- 确保你的“列表模板”已经正确选择(
list_article.htm)。 - 点击【保存】。
常见问题与解决方法
-
问题:分页代码加上了,但是不显示,或者一直只有一页。
- 原因1:
{dede:pagelist}没有放在{dede:list}标签的外面。 - 原因2:后台该栏目没有勾选“使用列表”。
- 原因3:该栏目下的文章数量少于“列表页行数”设置,检查后台【系统】->【系统基本参数】->【核心设置】里的“列表页行数”或栏目设置里的“列表每页显示数”。
- 原因1:
-
问题:分页样式很丑,不符合我的网站风格。
- 解决:通过CSS来定制样式,如上面“综合应用示例”中的CSS代码所示,利用织梦生成的class名,你可以自由控制分页的字体、颜色、边框、间距等。
-
问题:我想自定义分页的文字,上一页”改成“←”,“下一页”改成“→”。
- 解决:需要修改织梦的核心文件,请谨慎操作,并建议先备份文件。
- 打开
/include/arc.listview.class.php文件。 - 找到
GetPageListST函数,里面定义了prepage、nextpage等变量的值。 - 修改这些变量的赋值语句即可,找到
$prepage的定义,将其中的'上一页'改成 。
- 打开
- 解决:需要修改织梦的核心文件,请谨慎操作,并建议先备份文件。
希望这份详细的指南能帮助你成功在织梦网站中实现文章列表的分页功能!
