下面我将从最常见、最可能的原因开始,为你提供一套详细的排查和解决方案,请按照顺序逐一检查。

核心问题分析
pagebreak 的正常工作流程是:
- 编辑器插入:你在后台编辑文章时,点击编辑器上的“分页”按钮,插入一个特殊的代码
[pagebreak]。 - 数据存储:这个代码
[pagebreak]被保存到数据库的dede_addonarticle表(或其他附加表)的body字段中。 - 前端解析:当文章内容被调用并显示在网页上时,DedeCMS 的系统函数会解析
body字段,将[pagebreak]替换成实际的分页导航链接(如“1 2 3 下一页”)。
任何一个环节出现问题,都会导致分页符不显示。
解决方案(按排查顺序)
第一步:检查文章内容本身(最基本)
这是最容易被忽略但又最常见的原因。
- 确认代码存在:登录你的网站后台,进入“核心” -> “内容发布” -> “普通文章”。
- 找到并编辑那篇长文章。
- 切换到“源代码”模式:在编辑器工具栏上找到类似
</>或“源代码”的按钮并点击。 - 查找
[pagebreak]:在代码视图中,仔细检查文章内容里是否存在[pagebreak]这个字符串。- 如果找不到:说明你当初编辑文章时没有成功插入分页符,请将光标放在需要分页的位置,然后点击编辑器上的“分页”按钮,再切换到源代码模式确认是否已经插入,然后保存文章。
- 如果找到了,但显示为
[PageBreak]或其他大小写变体,请确保它和你系统定义的分页标签一致(通常是[pagebreak],不区分大小写)。
小结:如果文章内容里根本没有 [pagebreak],那前端肯定不会显示分页,这是最首要的检查点。

第二步:检查文章模型(字段)
DedeCMS 的文章内容是存储在“附加表”里的,如果附加表的结构有问题,分页也无法正常工作。
- 进入后台模型管理:登录后台,进入“核心” -> “内容模型管理”。
- 检查文章模型:点击系统默认的“普通文章”进行编辑。
- 查看字段列表:在字段列表中,找到名为
body的字段(这是存放文章正文的核心字段)。 - 关键设置:确保
body字段的以下设置是正确的:- 字段类型:必须是
editor(编辑器)或texttext(多行文本),如果被误改成了varchar等单行文本类型,长内容和分页符都会出问题。 - 是否为空:通常应为“是”。
- 后台显示:应为“是”。
- 字段类型:必须是
小结:确认 body 字段的类型是 editor,这是支持富文本和分页符的基础。
第三步:检查模板文件(最关键的代码层面)
这是导致分页不显示的最常见技术原因,分页导航的代码没有被正确地写在模板文件里。
-
找到文章内容模板:
(图片来源网络,侵删)- 登录后台,进入“模板” -> “默认模板管理”。
- 找到你当前使用的文章内容页模板,通常名为
article_article.htm,点击“修改”。
-
定位正文调用代码:在模板文件中,找到调用文章正文的代码,它通常是这样的:
{dede:field.body/}或者:
<div class="article-content"> [field:body/] </div> -
检查分页标签是否在
{dede:field.body/}内部:- 错误做法:很多新手会直接在
{dede:field.body/}的下面或上面加上{dede:pagebreak/},这是错误的。{dede:pagebreak/}的作用是解析{dede:field.body/}里的[pagebreak]标签,而不是独立生成一个分页。 - 正确做法:
{dede:pagebreak/}标签应该被包裹在{dede:field.body/}的循环或特定结构内部,对于新版DedeCMS,标准的写法是使用{dede:field.body/}自带的分页功能,它通常能自动处理。
- 错误做法:很多新手会直接在
-
使用标准的、推荐的模板代码: 如果你的模板代码比较混乱,建议直接使用 DedeCMS 默认的模板代码进行替换,在
article_article.htm中,找到正文部分,确保它看起来类似下面这样:<div class="article-content"> {dede:field.body/} </div> <!-- 分页导航代码,通常紧跟在正文后面 --> <div class="dede_pages"> <ul class="pagelist"> {dede:pagebreak/ </ul> </div>注意:在最新的 DedeCMS 版本中,
{dede:pagebreak/}标签的功能已经集成到{dede:field.body/}中,很多时候你甚至不需要在模板里额外写{dede:pagebreak/},只要确保{dede:field.body/}存在,系统就会自动在正文的[pagebreak]位置生成分页链接。一个更健壮的写法是:
<div class="article-content"> {dede:field.body/} </div> {dede:pagebreak runphp='yes'} if(@me != '') { echo '<div class="dede_pages"><ul class="pagelist">@me</ul></div>'; } {/dede:pagebreak}这个写法可以确保只有当文章存在分页时,才会显示分页导航区域,避免了空白区域的出现。
第四步:检查系统与插件冲突
-
禁用所有非必要插件:
- 登录后台,进入“系统” -> “插件管理”。
- 尝试禁用所有第三方插件,特别是与编辑器、内容处理相关的插件。
- 然后刷新文章页面,看分页是否出现,如果出现了,说明是某个插件导致了冲突,再逐个启用插件,找到是哪个插件的问题,然后联系插件作者或寻找替代方案。
-
检查编辑器类型:
- 进入后台“系统” -> “系统基本参数” -> “核心设置”。
- 找到 “Html编辑器” 选项,确认你正在使用的编辑器(如
ckeditor,fck,xheditor等)是否正常工作,有时编辑器自身的 Bug 也会导致无法插入[pagebreak],可以尝试切换成另一个编辑器测试。
第五步:检查缓存问题
DedeCMS 有强大的缓存机制,有时修改了模板或内容后,缓存没有及时更新,导致看不到效果。
- 清除所有缓存:
- 登录后台,进入“系统” -> “一键更新网站” -> “更新HTML”。
- 在页面底部,勾选“更新所有栏目页”和“更新所有文档页”,然后点击“开始更新”,这个过程会自动清除大部分缓存。
- 或者,直接通过 FTP 删除
/data目录下的cache_*文件夹(注意:操作前最好备份一下/data目录)。
- 刷新浏览器:清除缓存后,务必按
Ctrl + F5强制刷新浏览器页面,以确保加载的是最新版本。
总结与排查清单
如果遇到 pagebreak 不显示的问题,请按以下清单一步步操作:
- [ ] 检查文章:去后台编辑文章,源代码模式下确认
[pagebreak]代码是否存在。 - [ ] 检查模型:确认文章模型中的
body字段类型是editor。 - [ ] 检查模板:这是重点,确认
article_article.htm模板中{dede:field.body/}的使用是否正确,并尝试添加或修正{dede:pagebreak/}相关代码。 - [ ] 检查插件:禁用所有插件,排查是否是插件冲突。
- [ ] 清除缓存:执行“一键更新网站”或手动删除缓存文件,并强制刷新浏览器。
按照这个流程,90% 以上的 pagebreak 不显示问题都可以得到解决,如果问题依然存在,那么可能是你的 DedeCMS 版本存在特定 Bug,建议搜索你具体版本的已知问题,或考虑升级到更稳定的版本。
