使用帝国CMS制作网站时,文章页通常需要展示“上一篇”和“下一篇”链接,方便用户浏览相关内容。实现这个功能非常简单,帝国CMS提供了专门的调用标签来完成这项操作。

1. 基本调用标签

在内容模板(如:文章内容页 .dwt 文件)中,使用以下代码即可调用上一篇和下一篇文章:

[!--info.pre--] :调用上一篇文章链接

[!--info.next--] :调用下一篇文章链接

这两个是系统内置的替换变量,会自动根据当前文章的位置生成对应的链接。例如:

<p>上一篇:[!--info.pre--]</p>

<p>下一篇:[!--info.next--]</p>

输出结果类似:

上一篇:<a href="/news/2024-05/123.html">这是上一篇文章标题</a>

下一篇:<a href="/news/2024-05/125.html">这是下一篇文章标题</a>

2. 自定义调用样式(灵动标签)

如果想更灵活地控制显示格式(比如只显示标题、添加缩略图、限制字数等),可以使用帝国CMS的灵动标签(ecms)结合SQL查询实现。

示例:调用上一篇文章(按ID倒序查找小于当前文章ID的最新一篇)

[e:loop={"select * from [!db.pre!]ecms_news where id < '$navinfor[id]' and classid='$navinfor[classid]' order by id desc limit 1",1,24,0}]

<p>上一篇:<a href="<?=sys_ReturnBqTitleLink($bqr)?>" title="<?=$bqr[title]?>"><?=esub($bqr[title],40)?></a></p>

[/e:loop]

调用下一篇文章(查找大于当前ID的第一篇):

[e:loop={"select * from [!db.pre!]ecms_news where id > '$navinfor[id]' and classid='$navinfor[classid]' order by id asc limit 1",1,24,0}]

<p>下一篇:<a href="<?=sys_ReturnBqTitleLink($bqr)?>" title="<?=$bqr[title]?>"><?=esub($bqr[title],40)?></a></p>

[/e:loop]

说明:

- $navinfor[id] 和 $navinfor[classid] 是当前文章的ID和栏目ID,需在“带模板的标签”中启用“使用程序代码”

- [!db.pre!]ecms_news 需根据实际数据表修改(如使用其他模型请对应替换为 ecmps_download、ecms_photo 等)

- esub($bqr[title],40) 表示截取标题前40个字符

- sys_ReturnBqTitleLink($bqr) 自动生成文章链接