帝国CMS内容页中调用相关栏目的文章,可以通过灵动标签(e:loop)结合栏目ID或标题分类等方式实现。关键在于判断当前内容所属栏目,并调用该栏目下的其他文章,达到“相关文章”的展示效果。

1. 调用同栏目下的相关文章

使用灵动标签直接调用当前栏目下的其他信息,排除当前文章本身:

[e:loop={"select * from [!db.pre!]ecms_news where classid='$navinfor[classid]' and id$navinfor[id] order by newstime desc limit 10",10,24,0}]
=esub($bqr['title'],30)?>
[/e:loop]


说明:

classid='$navinfor[classid]' 表示当前内容所在的栏目ID

id$navinfor[id] 排除当前文章

limit 10 显示10条相关文章

适用于新闻模型(ecms_news),其他模型需修改数据表名

2. 按标题关键词匹配相关文章

如果希望根据文章标题中的关键词来匹配相关内容,可使用如下方法:

[e:loop={"select * from [!db.pre!]ecms_news where ($or) and id$navinfor[id] order by newstime desc limit 8",8,24,0}]
=esub($bqr['title'],28)?>
[/e:loop]

说明:

将当前标题拆分为关键词,查找包含相同词的文章

适合语义相近的内容推荐

注意关键词过短可能造成误匹配

3. 调用当前标题分类下的文章

若使用了“标题分类”,可通过tstb字段和标题分类ID进行调用:

[e:loop={"select * from [!db.pre!]ecms_news where ttid='$navinfor[ttid]' and id$navinfor[id] order by newstime desc limit 6",6,24,0}]
=esub($bqr['title'],32)?>
[/e:loop]

说明:

ttid 是标题分类ID字段

确保文章设置了标题分类才有效

适合专题类内容聚合

选择哪种方法取决于你的“相关”定义:是同栏目、同关键词,还是同标题分类。灵活组合标签,就能实现精准的相关文章推荐。