上一篇 下一篇 分享链接 返回 返回顶部

织梦分页怎么设置?列表页、文章页分页一次讲清楚

发布人:慈云数据-客服中心 发布时间:5小时前 阅读量:3

织梦怎么做分页:从列表分页到内容分页的完整教程

织梦 CMS(DedeCMS)曾经是国内使用非常广泛的内容管理系统,很多企业站、资讯站、下载站都基于织梦搭建。对于一个内容型网站来说,“分页”是非常基础但又十分重要的功能。分页做得好,不仅能提升用户浏览体验,还能改善页面加载速度,并且有助于网站结构优化和搜索引擎抓取。

很多新手在使用织梦时,经常会遇到这样的问题:列表页怎么分页?文章内容太长怎么分页?自定义模板中的分页标签怎么写?分页样式怎么修改?分页不显示怎么办? 本文将围绕“织梦怎么做分页”这个主题,系统讲解织梦分页的实现方法、常用标签、模板写法以及常见问题解决方案。


一、织梦分页主要分为哪几种?

在织梦中,常见的分页主要有以下几类:

  1. 栏目列表页分页
  2. 搜索结果页分页
  3. 标签列表页分页
  4. 文章内容分页
  5. 自定义 SQL 列表分页
  6. 会员中心或自定义页面分页

其中最常用的是栏目列表分页和文章内容分页。栏目列表分页通常用于新闻列表、产品列表、案例列表等页面;文章内容分页则用于一篇文章内容过长时,将正文拆分成多页显示。


二、织梦栏目列表页怎么做分页?

栏目列表页分页是织梦最常见的分页场景。例如新闻栏目中有 100 篇文章,每页显示 10 篇,那么就需要分页成 10 页。

在织梦中,栏目列表页分页主要依赖两个标签:

{dede:list pagesize='10'}
    
  • [field:title/] [field:pubdate function="MyDate('Y-m-d',@me)"/]
  • {/dede:list}
    {dede:pagelist listitem="info,index,end,pre,next,pageno" listsize="5"/}

    上面代码中:

    • {dede:list} 用来调用栏目文章列表;
    • pagesize='10' 表示每页显示 10 条内容;
    • {dede:pagelist} 用来输出分页导航;
    • listitem 用来控制分页显示哪些元素;
    • listsize='5' 表示分页数字最多显示 5 个。

    三、栏目列表分页模板完整示例

    假设你有一个新闻列表模板,文件路径可能是:

    /templets/default/list_article.htm

    你可以这样写:

    
    
    
        
        {dede:field.title/}_{dede:global.cfg_webname/}
        
    
    
    
    
      {dede:list pagesize='10' titlelen='80'}
    • [field:title/] [field:pubdate function="MyDate('Y-m-d',@me)"/]
    • {/dede:list}
    {dede:pagelist listitem="info,index,end,pre,next,pageno" listsize="5"/}

    保存模板后,进入织梦后台,更新栏目 HTML 或更新整站缓存,即可看到分页效果。


    四、{dede:pagelist} 标签参数详解

    织梦分页主要通过 {dede:pagelist} 标签实现。常用写法如下:

    {dede:pagelist listitem="info,index,end,pre,next,pageno" listsize="5"/}

    1. listitem 参数

    listitem 用来控制分页导航中显示哪些项目。

    常见值包括:

    参数 说明
    info 显示分页统计信息,例如“共多少页多少条”
    index 首页
    pre 上一页
    pageno 页码数字
    next 下一页
    end 末页
    option 下拉跳转分页

    例如只显示上一页、页码、下一页:

    {dede:pagelist listitem="pre,pageno,next" listsize="5"/}

    如果想显示完整分页:

    {dede:pagelist listitem="info,index,pre,pageno,next,end,option" listsize="5"/}

    2. listsize 参数

    listsize 表示分页数字按钮显示数量。例如:

    {dede:pagelist listsize="7"/}

    表示分页条中最多显示 7 个页码数字。

    如果总页数很多,例如 50 页,分页不会一次性全部显示,而是根据当前位置显示附近的页码。


    五、织梦内容页文章怎么分页?

    除了列表页分页之外,一篇文章内容很长时,也可以进行文章内容分页。比如一篇教程有 8000 字,如果全部显示在一个页面,页面会很长,加载也比较慢。此时可以使用织梦内容分页功能。

    织梦内容分页通常有两种方式:

    1. 在后台编辑文章时手动插入分页符;
    2. 在文章模板中调用内容分页标签。

    1. 后台插入分页符

    进入织梦后台,编辑某篇文章,在正文中需要分页的位置插入分页符:

    #p#分页标题#e#

    例如:

    第一部分内容……
    
    #p#第二页:安装步骤#e#
    
    第二部分内容……
    
    #p#第三页:使用方法#e#
    
    第三部分内容……

    这样生成文章后,织梦会将正文拆分成多页。

    如果不需要分页标题,也可以写成:

    #p#副标题#e#

    其中“副标题”会作为分页导航中的标题显示。


    六、文章内容页分页模板怎么写?

    文章内容页模板一般是:

    /templets/default/article_article.htm

    在文章内容页中,正文通常通过以下标签调用:

    {dede:field.body/}

    如果文章做了分页,那么还需要在正文下方添加分页标签:

    {dede:field.body/}
    {dede:pagebreak/}

    完整示例:

    {dede:field.title/}

    发布时间:{dede:field.pubdate function="MyDate('Y-m-d H:i',@me)"/} 浏览次数:{dede:field.click/}
    {dede:field.body/}
    {dede:pagebreak/}

    {dede:pagebreak/} 就是内容页分页标签,用来输出文章分页导航。


    七、文章分页常见样式优化

    默认的内容分页样式可能不够美观,可以通过 CSS 进行优化。例如:

    .article-page {
        text-align: center;
        margin: 30px 0;
    }
    
    .article-page a,
    .article-page span {
        display: inline-block;
        padding: 6px 12px;
        margin: 0 4px;
        border: 1px solid #ddd;
        color: #333;
        text-decoration: none;
        border-radius: 3px;
    }
    
    .article-page a:hover {
        background: #0074d9;
        color: #fff;
        border-color: #0074d9;
    }
    
    .article-page .thisclass {
        background: #0074d9;
        color: #fff;
        border-color: #0074d9;
    }

    如果发现分页当前页样式没有生效,可以查看生成后的 HTML 中当前页对应的 class 名称。有些版本可能使用 thisclass,有些模板可能需要根据实际输出结构调整 CSS。


    八、搜索结果页分页怎么做?

    织梦搜索结果页一般使用 search.htm 模板。搜索分页和列表页分页类似,但调用方式有所不同。

    搜索结果页常见代码如下:

    {dede:list pagesize='10'}
    
  • [field:title/]

    [field:description function="cn_substr(@me,160)"/]

  • {/dede:list}
    {dede:pagelist listitem="info,index,pre,pageno,next,end" listsize="5"/}

    不过需要注意,不同织梦版本或不同搜索模板中,搜索结果可能使用的是特定搜索标签。如果你的搜索页分页不显示,需要检查搜索模板是否支持 {dede:pagelist},以及后台是否已经正确生成或动态访问。


    九、标签页分页怎么做?

    标签页通常指 Tag 页面,例如:

    /tags.php?/关键词/

    如果你的网站使用 Tag 标签聚合页,也可能需要分页。

    在 Tag 模板中,常见写法类似:

    {dede:list pagesize='10'}
    
  • [field:title/]
  • {/dede:list}
    {dede:pagelist listitem="pre,pageno,next" listsize="5"/}

    不过 Tag 页面是否能正常分页,取决于你使用的织梦版本、Tag 伪静态规则、模板标签支持情况。如果你使用了二次开发版本,分页规则可能会有所不同。


    十、自定义 SQL 列表如何分页?

    有些网站模板中需要调用特定条件的数据,例如只显示推荐文章、热门文章、某个模型的数据等。普通的 {dede:arclist} 标签不能分页,很多新手会误以为给 arclist 加上 pagesize 就能分页,其实不行。

    需要注意:

    织梦中 {dede:arclist} 主要用于固定数量调用文章,不支持像栏目列表那样直接分页。

    如果要实现分页,通常建议使用:

    {dede:list pagesize='10'}

    如果必须自定义 SQL 并分页,则需要使用织梦的 datalist 或进行二次开发。

    常见思路是:

    1. 编写自定义 PHP 文件;
    2. 查询数据库总记录数;
    3. 根据当前页码计算 LIMIT
    4. 输出数据列表;
    5. 调用或自写分页函数。

    例如分页逻辑大致如下:

    $page = isset($_GET['page']) ? intval($_GET['page']) : 1;
    $page = max($page, 1);
    
    $pagesize = 10;
    $start = ($page - 1) * $pagesize;
    
    $sql = "SELECT * FROM dede_archives WHERE arcrank >= 0 ORDER BY id DESC LIMIT $start,$pagesize";

    然后再统计总数:

    $countSql = "SELECT COUNT(*) AS total FROM dede_archives WHERE arcrank >= 0";

    根据总数计算总页数:

    $totalPage = ceil($total / $pagesize);

    最后输出分页链接。

    不过对于普通用户来说,如果不是必须做复杂功能,建议优先使用织梦原生列表分页。


    十一、分页不显示的常见原因

    很多人在写好分页标签后,发现页面上没有分页,或者分页只有一页。这通常有以下几种原因。

    1. 使用了 {dede:arclist} 而不是 {dede:list}

    这是最常见的问题。

    错误示例:

    {dede:arclist row='10'}
        
  • [field:title/]
  • {/dede:arclist} {dede:pagelist/}

    arclist 不负责列表分页,所以分页可能不会正常显示。

    正确示例:

    {dede:list pagesize='10'}
        
  • [field:title/]
  • {/dede:list} {dede:pagelist listitem="pre,pageno,next" listsize="5"/}

    2. 栏目文章数量不足

    如果栏目中只有 5 篇文章,而你设置:

    {dede:list pagesize='10'}

    那么只有一页,自然不会出现多页分页。可以将 pagesize 改小测试:

    {dede:list pagesize='2'}

    如果这时出现分页,就说明标签没有问题,只是文章数量不足。

    3. 模板没有绑定到栏目

    织梦中每个栏目可以设置列表模板。如果你修改的是 list_article.htm,但栏目实际使用的是其他模板,那么你改的分页代码不会生效。

    解决方法:

    进入后台:

    核心 → 网站栏目管理 → 修改栏目 → 高级选项

    检查栏目列表模板是否为你修改的模板文件。

    4. 没有更新栏目或缓存

    织梦很多页面是生成静态 HTML 的,如果修改模板后没有更新页面,前台仍然显示旧内容。

    解决方法:

    进入后台:

    生成 → 更新栏目 HTML

    或者:

    生成 → 更新所有

    如果开启了缓存,还可以清理缓存后再访问。

    5. 分页标签位置错误

    {dede:pagelist} 应该放在 {dede:list} 标签外部,而不是内部。

    错误写法:

    {dede:list pagesize='10'}
    
  • [field:title/]
  • {dede:pagelist/} {/dede:list}

    正确写法:

    {dede:list pagesize='10'}
    
  • [field:title/]
  • {/dede:list} {dede:pagelist/}

    6. 栏目类型不支持

    如果栏目是封面栏目,可能不会按普通列表页方式分页。需要确认栏目类型是否为“最终列表栏目”或可正常调用列表数据。


    十二、织梦分页 URL 规则说明

    织梦生成静态分页时,常见分页 URL 类似:

    /list_1_1.html
    /list_1_2.html
    /list_1_3.html

    其中:

    • 第一个数字通常表示栏目 ID;
    • 第二个数字表示页码。

    不同设置下,分页 URL 也可能是:

    /news/list_2.html
    /news/list_3.html

    如果你开启了伪静态或做了 URL 规则修改,分页地址也可能发生变化。

    需要注意的是,修改分页 URL 规则时要谨慎,因为不正确的规则可能导致分页链接打不开,甚至影响搜索引擎收录。


    十三、分页对 SEO 有什么影响?

    分页不仅是前端展示问题,也和 SEO 有一定关系。

    1. 避免单页内容过多

    如果一个栏目有几百篇文章,全部放在一个页面中,会导致页面体积过大、加载速度慢。分页可以让页面结构更清晰。

    2. 保持分页页面可访问

    分页页面应该能够正常打开,不要出现第一页能打开、第二页 404 的情况。

    3. 分页标题建议有区分

    例如栏目第二页的标题可以带上页码:

    新闻资讯_第2页_网站名称

    这样可以减少分页页面标题重复的问题。

    4. 合理控制每页数量

    一般新闻列表每页显示 10 到 20 条比较合适;产品列表可以根据页面布局显示 12、16 或 20 条。数量过少会造成分页过多,数量过多会影响加载速度。


    十四、分页样式美化建议

    分页虽然只是一个小组件,但对用户体验影响明显。建议在设计分页时注意以下几点:

    1. 当前页要明显突出;
    2. 首页、上一页、下一页、末页要清晰;
    3. 移动端按钮不要太小;
    4. 页码数量不要过多;
    5. 分页链接颜色要和网站主题一致;
    6. 不要让分页区域离列表太远;
    7. 保持分页结构简洁,避免堆砌复杂元素。

    一个通用分页样式可以这样写:

    .pagination {
        text-align: center;
        margin: 35px 0;
        font-size: 14px;
    }
    
    .pagination a,
    .pagination span {
        display: inline-block;
        min-width: 34px;
        height: 34px;
        line-height: 34px;
        margin: 0 3px;
        padding: 0 8px;
        border: 1px solid #ddd;
        color: #333;
        text-decoration: none;
        box-sizing: border-box;
    }
    
    .pagination a:hover {
        background: #1e88e5;
        border-color: #1e88e5;
        color: #fff;
    }
    
    .pagination .thisclass {
        background: #1e88e5;
        border-color: #1e88e5;
        color: #fff;
    }

    模板中可以这样使用:


    十五、移动端分页怎么优化?

    现在很多网站都有移动端页面,如果分页按钮太小,用户点击会很困难。移动端分页建议:

    1. 减少页码数量;
    2. 保留“上一页”和“下一页”;
    3. 按钮高度不低于 36px;
    4. 间距适当增加;
    5. 避免显示太长的统计文字。

    移动端可以这样写:

    {dede:pagelist listitem="pre,next" listsize="3"/}

    CSS 示例:

    .m-page {
        display: flex;
        justify-content: space-between;
        margin: 20px 15px;
    }
    
    .m-page a {
        flex: 1;
        text-align: center;
        margin: 0 5px;
        height: 38px;
        line-height: 38px;
        background: #f5f5f5;
        color: #333;
        text-decoration: none;
        border-radius: 4px;
    }

    对于移动端来说,简单的“上一页 / 下一页”有时候比复杂页码更实用。


    十六、织梦分页实战检查清单

    如果你想快速判断织梦分页是否写对,可以按照下面清单检查:

    • 是否使用了 {dede:list pagesize='数量'}
    • 是否在 {dede:list} 外部写了 {dede:pagelist}
    • 栏目文章数量是否超过每页显示数量?
    • 当前栏目是否绑定了正确的列表模板?
    • 修改模板后是否重新生成了静态页面?
    • 栏目类型是否为列表栏目?
    • 分页 CSS 是否隐藏了分页元素?
    • 分页链接是否能正常打开?
    • 是否错误使用了 {dede:arclist}
    • 内容分页是否添加了 {dede:pagebreak/}

    只要逐项排查,大多数分页问题都能解决。


    十七、总结

    织梦做分页并不复杂,关键是要区分不同场景。栏目列表分页主要使用 {dede:list pagesize='10'}{dede:pagelist}文章内容分页主要使用正文中的分页符 #p#分页标题#e# 和模板中的 {dede:pagebreak/}。如果是普通栏目列表,不建议使用 {dede:arclist} 来实现分页,因为它本身不承担分页功能。

    简单来说,织梦分页的核心写法如下:

    {dede:list pagesize='10'}
    
  • [field:title/]
  • {/dede:list}
    {dede:pagelist listitem="info,index,pre,pageno,next,end" listsize="5"/}

    文章内容分页的核心写法如下:

    {dede:field.body/}
    {dede:pagebreak/}

    掌握这两种写法后,基本就能解决织梦网站中绝大多数分页需求。后续如果要做更复杂的自定义分页,例如 SQL 分页、筛选分页、Ajax 分页等,则需要结合 PHP 和数据库查询进行二次开发。对于普通企业站和资讯站而言,织梦自带分页功能已经足够使用。

    目录结构
    全文