找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 658|回复: 0
打印 上一主题 下一主题

DEDECMS内容页分页过多、过长问题最佳解决方案

[复制链接]

3444

主题

3465

帖子

1万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
11142
跳转到指定楼层
楼主
发表于 2018-2-13 20:39:05 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

今天在织梦论坛上看到很多咨询关于分页太多,导致页码导航全部显示而撑破网页或不太美观的问题,当然相信很多用DedeCMS的站长朋友们多少也都遇到这样的问题,如下图所示:

导致页码导航全部显示而撑破网页或不太美观的问题
  那么该如何让页码智能显示,每页只固定显示当前页的前后几个呢?仔细想一下其实并不太难,首先我们需要知道解析分页的文件是哪一个,一般情况下dedecms此类文件都会放在include下,用查找的方式找了一下“上一页”,不用说也知道这是为什么要找它,因为这是分页唯一的代码!很快我们查找到了arc.archives.class.php文件,但是其中有两处,仔细看了一下,第一处是列表页用的,第二处是文章页用的,下边就来解决一下如何智能分页,本人asp学的还可以,php就差多了,在5.1的时候记的有个朋友写过,于是拿出来改了一下,修改方法如下:
打开include/arc.archives.class.php文件
dedecms5.1版本
inc_archives_view.php
dedecms 5.5 5.5是
arc.archives.class.php
找到GetPagebreakDM //修改的是列表页
找到代码:for($i=1;$i
复制代码代码如下:
$total_list=8; //只显示8个页码 脚本之家(jb51.net)注
    if($nowPage >= $total_list) {
            $i = $nowPage-4; //显示4页
            $total_list = $nowPage+4; //显示4页
            if($total_list >= $totalPage) $total_list = $totalPage;
        }else{
               $i=1;
               if($total_list >= $totalPage) $total_list = $totalPage;
    }
    for($i;$i
再将for($i=1;$i

看到效果了吧?就是不管有多少页,只显示当前页的前四与后四个页码,以上图为例,现在是第八页,只显示前边到四和后边到十二,赶快试一下吧,注意该方法只适合dedecms5.1、dedecms5.3和5.5哦。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

用户反馈
客户端