- 模板文件:在列表页模板中,调用织梦的分页标签。
- CSS样式:美化分页标签,让它看起来更符合网站的设计。
第一步:在列表页模板中调用分页标签
织梦的分页功能非常强大,只需要在列表页模板(通常是 list_article.htm)的循环内容结束后,添加一个固定的标签即可。

-
打开你的列表页模板文件: 这个文件通常位于你的模板目录下,
/templets/你的默认模板名称/list_article.htm。 -
循环结束的位置: 在模板中,你会看到类似这样的代码,这是用来循环输出列表文章的:
<ul class="list"> {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} </ul>这里的
{dede:list}标签就是用来获取列表数据的。 -
在
{/dede:list}之后添加分页标签: 在上面代码的</ul>之后,添加织梦的分页标签,最常用的是#pagelist<ul class="list"> {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} </ul> <!-- 在这里添加分页标签 --> <div class="dede_pages"> <ul class="pagelist"> {dede:pagelist listitem="index,pre,next,end,option" listsize="5" runphp='yes'} if(@me==' <a href="javascript:;" disabled="1">上一页</a> ') @me=' <span class="pagepre">上一页</span> '; if(@me==' <a href="javascript:;" disabled="1">下一页</a> ') @me=' <span class="pagenext">下一页</span> '; @me= str_replace("index","首页",@me); @me= str_replace("pre","上一页",@me); @me= str_replace("next","下一页",@me); @me= str_replace("end","末页",@me); @me= str_replace("option","跳转",@me); @me= str_replace("共页","共",@me); @me= str_replace("条","条",@me); @me= str_replace("页","页",@me); @me= str_replace("GO","GO",@me); @me= str_replace("select","<select name='select' onchange='window.location+=(\"&pageno=\"+this.value);'>",@me); @me= str_replace("</select>","</select>",@me); {/dede:pagelist} </ul> </div>
标签解释:

{dede:pagelist ...}: 这是织梦的分页标签。listitem: 定义要显示的分页项目。index: 首页pre: 上一页next: 下一页end: 末页option: 跳转选项(下拉框)info: 页面信息(如“共X页,到第X页”)
listsize: 显示的页码按钮数量,5表示... 2 3 4 5 6 ...这样的效果。runphp='yes': 允许在标签内使用PHP代码,我们用它来自定义“上一页”和“下一页”在无链接时的样式(比如变成灰色不可点击状态)。
第二步:添加CSS样式美化分页
默认情况下,分页标签的样式可能比较朴素,为了实现常见的“上一页/下一页”样式,我们需要添加一些CSS代码。
-
找到你的CSS文件: 通常是
/templets/你的默认模板名称/style/css.css或/templets/你的默认模板名称/style/dedecms.css。 -
在CSS文件中添加以下样式:
/* 分页容器 */ .dede_pages { text-align: center; margin: 20px 0; font-size: 12px; } /* 分页列表 */ .pagelist { display: inline-block; list-style: none; padding: 0; margin: 0; } /* 分页列表项(每个页码按钮) */ .pagelist li { float: left; margin: 0 5px; } /* 分页链接样式 */ .pagelist a { display: block; padding: 5px 12px; border: 1px solid #ddd; color: #333; text-decoration: none; border-radius: 3px; /* 圆角 */ } /* 鼠标悬停效果 */ .pagelist a:hover { background-color: #f8f8f8; border-color: #ccc; } /* 当前页样式(如果需要高亮当前页) */ .pagelist .thisclass { background-color: #f8f8f8; color: #ff5500; font-weight: bold; border: 1px solid #ff5500; cursor: default; } /* 自定义的“上一页”和“下一页”样式 */ .pagepre, .pagenext { display: inline-block; padding: 5px 12px; border: 1px solid #ddd; color: #333; text-decoration: none; border-radius: 3px; cursor: default; /* 当没有链接时,鼠标显示默认箭头 */ } /* 当上一页/下一页没有链接时(即禁用状态)的样式 */ .pagepre.disabled, .pagenext.disabled { color: #ccc; border-color: #eee; cursor: not-allowed; } /* 跳转下拉框样式 */ .pagelist select { padding: 5px; border: 1px solid #ddd; border-radius: 3px; }
CSS样式说明:
- 我们通过
runphp='yes'将没有链接的<a>标签替换为了<span>标签,并分别给了class="pagepre"和class="pagenext"。 - 我们还添加了
.disabled类,用于当“上一页”已经是第一页,或“下一页”已经是最后一页时,将其置灰,表示不可点击。 - 你可以根据自己网站的设计,自由修改颜色、边框、内边距等属性。
第三步:如何处理“上一页/下一页”禁用状态(可选但推荐)
在第一步的 runphp 代码中,我们只是简单地将 <a> 标签换成了 <span>,为了实现更好的禁用效果(比如置灰),可以稍微修改一下PHP逻辑。
修改后的 runphp 代码:
{dede:pagelist listitem="index,pre,next,end,option" listsize="5" runphp='yes'}
if(@me==' <a href="javascript:;" disabled="1">上一页</a> ')
@me=' <span class="pagepre disabled">上一页</span> ';
else if(@me==' <a href="javascript:;" disabled="1">下一页</a> ')
@me=' <span class="pagenext disabled">下一页</span> ';
else
@me= str_replace("index","首页",@me);
@me= str_replace("pre","上一页",@me);
@me= str_replace("next","下一页",@me);
@me= str_replace("end","末页",@me);
@me= str_replace("option","跳转",@me);
@me= str_replace("共页","共",@me);
@me= str_replace("条","条",@me);
@me= str_replace("页","页",@me);
@me= str_replace("GO","GO",@me);
@me= str_replace("select","<select name='select' onchange='window.location+=(\"&pageno=\"+this.value);'>",@me);
@me= str_replace("</select>","</select>",@me);
{/dede:pagelist}
这个修改增加了 else if 和 else 判断,当检测到“上一页”或“下一页”是禁用状态时,会直接输出带有 disabled 类的 <span> 标签,这样我们就可以在CSS中通过 .pagepre.disabled 和 .pagenext.disabled 来精确控制它们的禁用样式。
- 模板:在
list_article.htm的{/dede:list}后添加{dede:pagelist}标签,并利用runphp自定义文本和禁用状态。 - CSS:在CSS文件中为
.dede_pages,.pagelist,.pagelist a以及自定义的.pagepre,.pagenext等类编写样式。 - 刷新:保存模板和CSS文件后,在后台更新一下对应的列表页,就能看到效果了。
通过以上步骤,你就可以在织梦列表页完美地实现并自定义“上一页/下一页”分页功能了。
