这是一个非常核心且常用的功能,主要用于分页。

dede_pages 是什么?
dede_pages 并不是一个独立的数据库表,而是一个由 DedeCMS 系统在文章内容页(article_article.htm)中自动生成的全局变量。
当你编辑一篇文章时,如果文章内容超出了设定的分页字数或插入了特定的分页符(<div style="page-break:;">#p#</div> 或 [page]),DedeCMS 在生成该文章的静态 HTML 页面时,就会解析内容,并在模板的指定位置插入这个 dede_pages 变量,这个变量包含了文章所有分页的链接列表。
dede_pages 有什么用?
它的主要作用是在文章内容页,为读者提供翻页导航,当一篇文章被分成多页时,读者可以通过这个导航轻松地跳转到上一页、下一页,或者直接跳转到任意一页。
常见的效果如下:

上一页 1 2 3 4 5 ... 下一页
如何使用 dede_pages?
使用 dede_pages 主要涉及两个方面:
- 开启文章分页功能(后台设置)。
- 页模板中调用(前端模板修改)。
后台设置:开启文章分页
在 DedeCMS 后台,你需要确保文章分页功能是开启的,并设置好分页规则。
- 路径:登录后台 -> 系统 -> 系统基本参数 -> 核心设置
- 关键选项:
分页间隔:这是最核心的设置,它表示每页显示多少个字符(一个汉字算一个字符,一个英文或标点也算一个字符),当文章总字数超过这个数值时,系统会自动进行分页。- 设置为
2000,那么一篇 5000 字的文章就会被自动分成 3 页(前两页各 2000 字,最后一页 1000 字)。
- 设置为
自动分页符标记:这个选项定义了在文章编辑器中手动插入分页符的代码,默认是<div style="page-break:;">#p#</div>。你可以在编辑文章时,在需要分页的地方手动插入这个标记,实现更精确的分页控制,而不是单纯依赖字数。
(图片来源网络,侵删)
前端模板:调用 dede_pages
页模板文件 article_article.htm 中,你只需要在需要显示分页导航的地方,插入一个简单的标签即可。
基本用法:
<div class="dede_pages">
{dede:pages/}
</div>
{dede:pages/} 这个标签在解析时,会被系统自动替换为包含所有分页链接的 HTML 代码,也就是我们前面提到的 dede_pages 变量的值。
自定义 dede_pages 的样式
默认生成的分页导航样式可能比较朴素,通常是一堆 <a> 标签,为了让它符合你的网站设计,你需要自定义它的 CSS 样式。
步骤:
-
查看默认生成的 HTML 结构
打开一篇已分页的文章,在浏览器中右键“查看网页源代码”,找到分页导航部分,你会发现类似下面的结构:
<div class="dede_pages"> <ul class="pagelist"> <li><a href="/plus/view.php?aid=123" class="next">上一页</a></li> <li><span class="thisclass">1</span></li> <li><a href="/plus/view.php?aid=123&pageno=2">2</a></li> <li><a href="/plus/view.php?aid=123&pageno=3">3</a></li> <li><a href="/plus/view.php?aid=123&pageno=4">4</a></li> <li><a href="/plus/view.php?aid=123&pageno=5">5</a></li> <li><a href="/plus/view.php?aid=123&pageno=2" class="next">下一页</a></li> <li><select onchange="window.location.href=this.options[this.selectedIndex].value;"> <option value="/plus/view.php?aid=123" selected>第1页</option> <option value="/plus/view.php?aid=123&pageno=2">第2页</option> <option value="/plus/view.php?aid=123&pageno=3">第3页</option> ... </select></li> </ul> </div> -
编写 CSS 样式
根据上面的 HTML 结构,你可以在你的 CSS 文件(如
style.css)中编写对应的样式来美化它。示例 CSS 代码:
/* 分页导航容器 */ .dede_pages { text-align: center; /* 居中显示 */ margin: 20px 0; font-size: 14px; } /* 分页列表 */ .dede_pages .pagelist { display: inline-block; /* 使其成为行内块,方便设置边距 */ padding: 0; margin: 0; list-style: none; /* 去掉列表前的点 */ } /* 每个分页项 */ .dede_pages .pagelist li { float: left; /* 横向排列 */ margin: 0 5px; /* 设置左右间距 */ } /* 链接样式 */ .dede_pages .pagelist li a { display: block; padding: 5px 10px; border: 1px solid #ddd; color: #333; text-decoration: none; border-radius: 3px; /* 圆角 */ } /* 鼠标悬停效果 */ .dede_pages .pagelist li a:hover { background-color: #f8f8f8; border-color: #ccc; } /* 当前页样式 */ .dede_pages .pagelist li span.thisclass { display: block; padding: 5px 10px; border: 1px solid #007bff; background-color: #007bff; color: #fff; border-radius: 3px; } /* 下一页/上一页样式 */ .dede_pages .pagelist li a.next, .dede_pages .pagelist li a.prev { /* 可以给上一页下一页单独加样式 */ }
高级用法与注意事项
-
静态化模式下的链接 在静态化模式下,分页链接会以
.html并且通过 号和页码来区分,article_123_1.html、article_123_2.html,如果你的伪静态规则设置得当,也可能是article-123-1.html这样的形式,DedeCMS 会自动处理。 -
手动分页 vs 自动分页
- 自动分页:依赖
分页间隔设置,简单快捷,但可能在段落中间断开,影响阅读体验。 - 手动分页:在文章编辑器中插入
<div style="page-break:;">#p#</div>,可以让你在章节结束、图片说明完成等逻辑节点进行分页,体验更好。
- 自动分页:依赖
-
SEO 优化
- 确保每一页都有独立的
<title>和<description>,DedeCMS 的文章分页页默认会自动在标题后加上- 第N页,这对于 SEO 是友好的。 - 过短就分页,一页内容至少要有几百个字,否则可能会被搜索引擎视为“内容稀薄页”。
- 确保每一页都有独立的
| 特性 | 描述 |
|---|---|
| 本质 | 一个在文章内容页自动生成的全局变量,包含分页链接的 HTML 代码。 |
| 作用 | 页为读者提供翻页导航功能。 |
| 调用方式 | 在 article_article.htm 模板中使用 {dede:pages/}
|
| 后台配置 | 在 系统基本参数 -> 核心设置 中配置 分页间隔 和 自动分页符标记。 |
| 样式自定义 | 通过分析 {dede:pages/} 生成的 HTML 结构,编写 CSS 进行美化。 |
| 关键点 | 结合后台设置和前端模板,才能实现完整的文章分页功能。 |
希望这份详细的解析能帮助你完全理解和使用 DedeCMS 的 dede_pages 功能!
