在 DedeCMS 中,实现相关文章功能主要有两种方式,对应着两种不同的标签:

{dede:likearticle}:这是最常用、最灵活的方式,它可以根据设定的规则(如关键字、同栏目、同模型等)来动态获取相关文章。{dede:arclist}标签配合typeid或keyword属性:这是一种更简单的方式,通常用于调用指定栏目或包含特定关键词的文章,有时也用作“相关文章”。
下面我们重点讲解功能最强大的 这个标签是专门为“相关文章”功能设计的,它的核心思想是:基于当前文章,找到与之相似的其他文章。 默认关键字相关(最常用)
不指定任何属性,默认会根据当前文章的关键字来查找相关文章。 同栏目且关键字相关(推荐)
这种方式相关性更高,因为文章不仅主题相关,还在同一个分类下。 排除当前文章,调用同栏目最新文章
有时候你可能不希望文章“相关”,而是希望推荐同栏目的其他文章。 如果你想显示文章的缩略图,需要使用附加的图片字段 虽然 在文章详情页( 这个方法不如 希望这份详细的解析能帮助你完全掌握 DedeCMS 的相关文章标签!{dede:likearticle}
{dede:likearticle} 标签详解基本语法和结构
{dede:likearticle}
<li>
<a href="[field:arcurl/]">[field:title/]</a>
</li>
{/dede:likearticle}
{dede:likearticle}:标签开始。[/dede:likearticle]:标签结束。[field:arcurl/]:获取相关文章的链接地址。[field:title/]:获取相关文章的标题。核心属性(决定文章如何“相关”)
{dede:likearticle} 的强大之处在于它的属性,通过组合这些属性,你可以精确地定义“相关”的规则。
属性名
含义
示例/说明
row返回文章数量
row='10' (默认10条)
col每行显示文章数
col='2' (每行显示2条)
infolen简介截取长度
infolen='100' (文章简介最多显示100个字符)
orderby排序方式
orderby='hot' (按浏览量降序), orderby='pubdate' (按发布时间降序), orderby='scores' (按评分降序)
keyword按当前文章关键字匹配
这是最核心的属性之一,如果当前文章的关键字是“织梦,PHP,建站”,它会调用包含这些关键字的文章。
typeid限制在指定栏目内
typeid='5' (只调用栏目ID为5下的文章),常与 keyword 配合使用,表示“同栏目且关键字相关”。
idlist指定文章ID列表
idlist='10,25,30' (只调用ID为10, 25, 30的文章),用于排除当前文章本身。
channelid指定模型ID
channelid='1' (只调用普通文章模型)。
subday指定多少天内的文章
subday='30' (只调用最近30天内发布的文章)。
noflag排除特定标志
noflag='h' (不带有“头条”标志的文章)。最常用的组合方式
<h3>相关文章</h3>
<ul>
{dede:likearticle row='5' titlelen='30'}
<li><a href="[field:arcurl/]" title="[field:title/]">[field:title function='cn_substr(@me,30)'/]</a></li>
{/dede:likearticle}
</ul>

<h3>同栏目相关文章</h3>
<ul>
{dede:likearticle row='5' titlelen='30' keyword='' typeid=''}
<li><a href="[field:arcurl/]" title="[field:title/]">[field:title function='cn_substr(@me,30)'/]</a></li>
{/dede:likearticle}
</ul>
keyword='':表示使用当前文章的关键字。typeid='':表示使用当前文章所在的栏目ID。<h3>同栏目推荐</h3>
<ul>
{dede:likearticle row='5' titlelen='30' typeid='' keyword='' idlist=''}
<li><a href="[field:arcurl/]" title="[field:title/]">[field:title function='cn_substr(@me,30)'/]</a></li>
{/dede:likearticle}
</ul>
idlist='':这个属性会自动将当前文章的ID排除在外,避免推荐自己。高级用法:调用带有缩略图的相关文章
[field:picname/]。<h3>图文相关文章</h3>
<ul class="related-img">
{dede:likearticle row='4' titlelen='20' orderby='rand'}
<li>
<a href="[field:arcurl/]">
<img src="[field:picname/]" alt="[field:title/]" />
<span>[field:title function='cn_substr(@me,20)'/]</span>
</a>
</li>
{/dede:likearticle}
</ul>
orderby='rand':随机排序,每次刷新页面相关文章顺序都不同,增加页面新鲜感。[field:picname/]:获取文章的缩略图地址。注意:需要确保文章有上传缩略图,否则可能显示默认图或空白。
{dede:arclist} 标签作为“相关文章”{dede:likearticle} 是首选,但 {dede:arclist} 也可以用来实现类似功能,通常用于更简单的场景。按栏目调用(同栏目文章)
article_article.htm),调用当前文章所在栏目的其他文章。
<h3>同栏目文章</h3>
<ul>
{dede:arclist row='10' titlelen='30' typeid='' noflag='h'}
<li><a href="[field:arcurl/]" title="[field:title/]">[field:title function='cn_substr(@me,30)'/]</a></li>
{dede:arclist}
</ul>
typeid='':在文章内容页,这个属性会自动获取当前文章的栏目ID,实现调用同栏目的文章。noflag='h':可选,排除带有“头条”标志的文章。按关键字调用(包含指定关键词的文章)
likearticle 智能,因为它需要你手动指定关键词。<h3>包含“织梦”的文章</h3>
<ul>
{dede:arclist row='10' titlelen='30' keyword='织梦'}
<li><a href="[field:arcurl/]" title="[field:title/]">[field:title function='cn_substr(@me,30)'/]</a></li>
{dede:arclist}
</ul>
keyword='织梦':这是固定的,不会根据当前文章变化,所以这种方式通常不用于“相关文章”,而是用于一个固定的“热门标签”或“关键词推荐”模块。
使用注意事项
{dede:likearticle} 是在页面加载时实时从数据库查询的,如果设置的 row 值过大或网站数据量很大,可能会对页面加载速度产生轻微影响,对于大多数网站,row='5' 到 row='10' 是比较合理的范围。{dede:likearticle} 的效果高度依赖于文章的关键字质量,如果文章没有填写关键字,或者关键字填写得不准确(如“的”、“是”等无意义词汇),那么相关文章的效果会非常差。强烈建议在发布文章时认真填写关键字。article_article.htm 模板文件中 {dede:field.body/} 的后面。
需求场景
推荐标签
关键属性组合
最常用的相关文章
{dede:likearticle}row='5' titlelen='30' (默认即可)
高质量相关文章(同栏目+关键字)
{dede:likearticle}row='5' titlelen='30' keyword='' typeid=''
同栏目推荐(排除自己)
{dede:likearticle}row='5' titlelen='30' typeid='' idlist=''
简单的同栏目文章列表
{dede:arclist}row='10' titlelen='30' typeid=''
