# 帝国cms怎么调用上一篇和下一篇文章

*Published:* 2026-03-25
*Author:* 客服001

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

1\. 基本调用标签

在内容模板（如：文章内容页 .dwt 文件）中，使用以下代码即可调用上一篇和下一篇文章：

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

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

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

&lt;p&gt;上一篇：\[!--info.pre--\]&lt;/p&gt;

&lt;p&gt;下一篇：\[!--info.next--\]&lt;/p&gt;

输出结果类似：

上一篇：&lt;a href="/news/2024-05/123.html"&gt;这是上一篇文章标题&lt;/a&gt;

下一篇：&lt;a href="/news/2024-05/125.html"&gt;这是下一篇文章标题&lt;/a&gt;

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) 自动生成文章链接