"相关文章"是帝国CMS的内容页重要功能,但相信很多人在用的时候会有点理不清用法。
首先在文章详情页展示与当前文章有关联的其他文章列表。有两种模式:
- 按关键字查询:根据文章关键字(
keyboard)自动匹配 - 手动相关连接:管理员手工指定相关文章ID
通过 info_diyotherlink字段区分两种模式,在文章发布/编辑时配置的。
配置入口
文章发布/编辑页面(AddNews.php)有两个相关字段:
| 字段 | 类型 | 说明 |
|---|---|---|
info_diyotherlink |
checkbox | 是否手动设置相关文章(1=手动,0=自动) |
info_keyid |
text/hidden | 相关文章ID列表,逗号分隔 |
点击"相关链接"按钮会弹出选择窗口,可以按标题/关键字/搜索文章并勾选:
不管哪种方式,最终都会把关联的文章ID存到 keyid 字段。
批量更新相关链接
还有个"批量更新相关链接"功能,针对的是"按关键字查询"的文章(info_diyotherlink=0),重新根据当前关键词计算一次 keyid。手动相关连接的文章会被跳过。

典型场景:
- 给文章加了关键词"AI" → 需要重算 keyid 才能关联到含"AI"的文章
- 新发布了一批文章 → 旧文章的 keyid 没包含新ID → 批量更新后就能关联上
模板调用
在模板中用 [otherlink] 标签输出相关文章列表:
[otherlink]标签模板ID,操作对象,调用条数,标题截取字数,是否显示栏目名,操作类型,只显示标题图片的信息[/otherlink]
| 参数 | 说明 |
|---|---|
| 标签模板ID | 后台创建的标签模板ID |
| 操作对象 | 对应操作类型的表名/栏目ID/标题分类ID,空则默认 |
| 调用条数 | 显示多少条 |
| 标题截取字数 | 标题最多显示多少字 |
| 是否显示栏目名 | 0=不显示,1=显示 |
| 操作类型 | 0=默认,1=按表,2=按栏目,3=按标题分类 |
| 只显示标题图片的信息 | 0=不限,1=只显示有标题图片的 |
操作对象
操作对象填什么取决于操作类型:
| 操作类型 | 操作对象含义 |
|---|---|
| 0 | 忽略,不用填 |
| 1 | 表名,如 "news" |
| 2 | 栏目ID,如 "5" |
| 3 | 标题分类ID,如 "3" |
操作对象本身没有固定含义,它是什么取决于操作类型。
查询逻辑
操作类型=0:按关键字查询直接读 keyid 字段,查当前文章所属模型表。keyid 在发布/编辑时由自动计算生成,也可通过上面提到的批量更新重新计算。
操作类型≠0:根据操作类型确定表和范围,然后用文章的 keyboard 关键字做实时 LIKE 匹配。匹配字段由后台"相关链接依据"配置决定(只匹配关键字 / 只匹配标题 / 两者都匹配)。这种方式不依赖 keyid,每次都是实时查。







