在使用DedeCMS程序时,如果文章或图集模型的内容页分页过多,例如达到80页,那么默认的分页标签{dede:pagebreak/}会将所有的分页一次性显示出来。这不仅会导致网页模板被撑破,还会严重影响用户体验。


虽然可以通过CSS控制(如使用overflow:hidden)解决模板撑破的问题,但这显然不是最佳方案,因为访问者将无法方便地浏览接下来的网页内容。幸运的是,在DedeCMS官方论坛上,有高手分享了一种优化方法,经过亲自测试,该方法完全可行。


假设一篇文章共分为50个分页,通过修改代码后,分页显示效果如下:


第一个分页情况:共50页: 上一页 1 2 3 4 5 6 7 8 9 10 下一页


第10个分页情况:共50页: 上一页 6 7 8 9 10 11 12 13 14 下一页


这种显示方式既简洁又实用,能够显著提升用户体验。


要实现这一功能,需要对DedeCMS的核心文件进行修改,具体步骤如下:


第一步: 打开 include/arc.archives.class.php 文件。


第二步: 查找动态页面分页函数 function GetPagebreakDM($totalPage,$nowPage,$aid),找到其中的 for($i=1;$i<=$totalPage;$i++) 部分,并将其替换为以下代码:


$total_list=10;
if($nowPage >= $total_list) {
    $i = $nowPage-4;
    $total_list = $nowPage+4;
    if($total_list >= $totalPage) $total_list = $totalPage;
} else {
    $i=1;
    if($total_list >= $totalPage) $total_list = $totalPage;
}
for($i;$i<=$total_list;$i++)

第三步: 继续查找静态页面分页函数 function GetPagebreak($totalPage,$nowPage,$aid),同样找到 for($i=1;$i<=$totalPage;$i++) 部分,并替换为相同的代码。


注意:$total_list=10; 表示首个分页显示10个分页地址。规律可以根据需求自行调整,例如在第一页显示1至10页,在第10页则显示当前页前后的4页,效果为6、7、8、9、10、11、12、13、14。


特别提醒:动态页面分页函数和静态页面分页函数都需要修改。如果仅修改动态页面分页函数,则只支持DedeCMS 5.31版本;若同时修改两者,则可兼容DedeCMS 5.6及最新版DedeCMS 5.7。


通过上述方法,可以有效优化DedeCMS内容页的分页显示效果,从而提高网站的用户体验和搜索引擎优化(SEO)表现。