场景分析
假设你的文章详情页模板是 article_article.htm,你有一个自定义字段,比如叫 mycontent,你希望这个 mycontent 字段也能像文章正文 body 一样进行分页。

核心原理:
DedeCMS 的分页功能依赖于一个特定的 HTML 注释标签 <!--pagebreak-->,你只需要在你的自定义字段内容中插入这个标签,系统就会自动识别并在此处进行分页。
手动在后台编辑文章分页(最简单)
这种方法适用于内容已经发布,现在需要手动添加分页的情况。
操作步骤:
-
登录 DedeCMS 后台:进入“核心” -> “内容管理” -> “普通文章”。
(图片来源网络,侵删) -
找到并编辑文章:找到你需要分页的文章,点击“编辑”。
-
编辑自定义字段内容:在文章编辑页面,找到你的自定义字段(
mycontent中,你希望分页的地方,手动输入<!--pagebreak-->。- 注意:
<!--pagebreak-->前后最好都留有空格或换行,以确保系统能正确识别,这个标签在后台编辑器中是可见的,但在前台显示时会自动被替换成分页导航条。
- 注意:
-
更新文章:点击“更新”或“保存”按钮。
-
前台查看效果:刷新你的文章详情页,你会发现自定义字段的内容已经在
<!--pagebreak-->的地方被分开了,并且底部自动生成了分页导航(如“首页 上一页 1/2 下一页 末尾”)。
优点:
- 操作简单直观,无需修改任何代码。
- 适用于一次性修改少量文章。
缺点:
- 如果文章很多,手动修改非常繁琐。
修改模板文件实现自动分页(最常用、最推荐)
这种方法是开发者在制作模板时就应该考虑的,它能让分页功能自动生效,你需要修改两个地方:列表页模板和详情页模板。
步骤 1:修改列表页模板 (list_*.htm)
列表页需要显示自定义字段内容的摘要,并且摘要中不能包含分页标签,否则分页链接会出错。
- 打开你的列表页模板文件,
list_article.htm。 - 找到调用文章自定义字段的标签,默认情况下,自定义字段在列表页是不显示的,你需要使用
array函数来处理。 - 关键代码:使用
@me和str_replace函数来过滤掉<!--pagebreak-->
修改前(可能无法显示自定义字段):
[field:mycontent/]
修改后(推荐写法,安全且功能完整):
{dede:field name='array' runphp='yes'}
if(@me['mycontent']){
// 自定义字段不为空,则进行处理
$mycontent = str_replace('<!--pagebreak-->', '', @me['mycontent']); // 移除分页标签
$mycontent = cn_substr($mycontent, 200); // 截取前200个字符作为摘要
@me = $mycontent;
}else{
@me = ''; // 如果自定义字段为空,则显示空
}
{/dede:field}
代码解释:
{dede:field name='array' runphp='yes'}:获取当前文章的所有字段,并以数组形式传递给 PHP 代码。@me['mycontent']:获取数组中mycontent字段的值。str_replace('<!--pagebreak-->', '', ...):将<!--pagebreak-->标签替换为空,即删除它。cn_substr($mycontent, 200):使用 DedeCMS 自带的函数截取字符串,防止摘要过长。200是你想要的摘要长度,可以自定义。@me = ...:将处理后的结果重新赋值给@me,最终在模板中显示。
步骤 2:修改详情页模板 (article_article.htm)
详情页是分页功能的核心展示区域,你需要确保你的自定义字段调用标签是正确的。
- 打开你的文章详情页模板文件
article_article.htm。 - 找到调用自定义字段的标签,确保它直接输出字段内容即可。
详情页中的正确调用方式:
[field:mycontent/]
为什么这里不需要处理?
因为 DedeCMS 的底层系统在解析 field 标签时,如果检测到内容中包含 <!--pagebreak-->,会自动进行分页处理,它会:
- 将
<!--pagebreak-->之前的内容作为当前页显示。 - 将
<!--pagebreak-->之后的内容作为下一页的内容。 - 自动生成分页导航链接。
在详情页模板里,你只需要像调用普通字段一样调用它即可。
步骤 3:如何让用户在前台也能手动分页?
是通过富文本编辑器(如ckeditor)由用户在前台提交的,你需要确保用户也能插入 重要注意事项: 通过以上两种方法,你就可以完美地在 DedeCMS 中为自定义字段实现分页功能了。强烈推荐使用方法二,因为它更规范、更高效。<!--pagebreak-->
ckeditor。
<!--pagebreak--> 文本。
总结与注意事项
方法
优点
缺点
适用场景
后台手动编辑
简单、无需代码、即时生效
繁琐、不适合大量文章
少量文章修改、紧急情况
修改模板
自动化、一劳永逸、符合标准开发流程
需要修改代码、对新手有一定门槛
新模板开发、大量文章需要分页
<!--pagebreak--> 是一个标准的 HTML 注释,前后不要有多余的字符,特别是逗号(),这会导致分页失败。
