下面我将为你详细讲解如何使用这个标签,并提供不同场景下的完整代码示例和注意事项。

核心标签:{dede:likearticle}
{dede:likearticle} 是专门用于调用相关文章的标签,它会分析当前文章的关键词,然后在文章表中查找包含相同关键词的其他文章。
基本用法(最常用)
这是最基础也是最常用的调用方式,通常用在文章内容页(article_article.htm)的末尾,用于推荐读者可能感兴趣的文章。
页 (article_article.htm) 中使用
将以下代码粘贴到你想要显示相关文章的位置,比如文章内容的末尾。

<h3>相关文章推荐</h3>
<ul class="related-list">
{dede:likearticle titlelen='42' row='8'}
<li>
<a href="[field:arcurl/]">[field:title/]</a>
<span class="date">([field:pubdate function="MyDate('Y-m-d',@me)"/])</span>
</li>
{/dede:likearticle}
</ul>
参数详解
在上面的代码中,{dede:likearticle} 标签使用了几个常用参数,我们来逐一解释:
row='8': 设置调用相关文章的数量,'8'表示调用 8 篇。titlelen='42': 设置文章标题的显示长度,'42'表示最多显示 42 个字符(一个汉字算2个字符,一个字母算1个字符),如果标题过长,会被自动截断并加上 。typeid='0': (可选)指定栏目 ID。'0'表示不限制栏目,在全站范围内查找,如果你想只在当前文章的栏目内查找相关文章,可以将此值设置为当前栏目的 ID。innertext='': (可选)自定义单篇相关文章的 HTML 模板,如果你不使用innertext,标签会使用默认的<a href="[field:arcurl/]">[field:title/]</a>格式,上面的例子就是通过直接在标签内写 HTML 来实现的,这和使用innertext是等效的。keyword='': (可选)手动指定关键词,如果留空,标签会自动获取当前文章的关键词。orderby='rand': (可选)排序方式。- 或
relrank:默认,按相关度排序(关键词匹配度高的在前)。 pubdate:按发布时间排序。rand:随机排序,可以让推荐文章看起来更多样化。
- 或
字段说明
在 {dede:likearticle} 标签内,你可以使用以下字段:

[field:title/]: 文章标题。[field:arcurl/]: 文章链接。[field:pubdate function="MyDate('Y-m-d',@me)"/]: 文章发布日期,function="MyDate('Y-m-d',@me)"是一个格式化函数,将时间戳格式化为年-月-日的形式,你也可以使用'[field:pubdate function="strftime('%Y-%m-%d',@me)"/]'。[field:description/]:[field:litpic/]: 文章缩略图。
进阶用法与技巧
场景1:调用当前栏目下的相关文章
如果你希望相关文章只显示在当前栏目内,而不是全站,可以加上 typeid 参数,并获取当前栏目的 ID。
<h3>本栏目相关文章</h3>
<ul>
{dede:likearticle typeid='0' row='5' titlelen='30'}
<li><a href="[field:arcurl/]">[field:title/]</a></li>
{/dede:likearticle}
</ul>
如何获取当前栏目 ID?
在 DedeCMS 的模板中,有一个内置变量 typeid 代表当前栏目的 ID,你可以这样使用:
{dede:likearticle typeid='[typeid]' row='5' titlelen='30'}
...
{/dede:likearticle}
这样就能确保调用的相关文章和当前文章属于同一个栏目。
场景2:带缩略图的相关文章列表
如果你想展示图文并茂的相关文章,可以使用 [field:litpic/] 字段。
<h3>图文推荐</h3>
<div class="related-img">
{dede:likearticle row='4' titlelen='20'}
<div class="item">
<a href="[field:arcurl/]">
<img src="[field:litpic/]" alt="[field:title/]" />
<span class="title">[field:title/]</span>
</a>
</div>
{/dede:likearticle}
</div>
对应的 CSS 样式可能需要你自己编写来布局这些图片。
场景3:排除当前文章
默认情况下,{dede:likearticle} 有时会调用到当前文章本身,如果你希望排除当前文章,可以尝试以下方法(此方法并非 100% 有效,取决于 DedeCMS 版本和配置,但很常用):
{dede:likearticle row='10' titlelen='40'}
<a href="[field:arcurl/]" title="[field:title/]">[field:title/]</a>
<br />
{/dede:likearticle}
然后通过 jQuery 在页面加载完成后,移除链接中 希望这份详细的指南能帮助你成功地在 DedeCMS 中实现相关文章的调用!href 属性与当前页面 URL 相同的 <a>
$(document).ready(function() {
var currentUrl = window.location.href;
$('.related-list a').each(function() {
if ($(this).attr('href') == currentUrl) {
$(this).parent().remove(); // 移除包含当前文章链接的整个 <li> 元素
}
});
});
重要注意事项与排查
{dede:likearticle} 调用不出结果,通常有以下几个原因:
{dede:likearticle} 依赖文章的关键词字段,请确保你发布的每篇文章都在“关键词”输入框中填写了至少一个关键词,多个关键词用英文逗号 隔开。typeid 参数来限制范围,或者使用 orderby='rand' 来随机展示。
功能需求
核心代码
说明
基本调用
{dede:likearticle row='8' titlelen='42'}...{/dede:likearticle}最常用,获取全站相关文章。
限制栏目
{dede:likearticle typeid='[typeid]' row='5'}...{/dede:likearticle}只在当前栏目内查找相关文章。
图文推荐
{dede:likearticle}...<img src="[field:litpic/]">...{/dede:likearticle}调用包含缩略图的相关文章。
随机排序
{dede:likearticle orderby='rand' row='10'}...{/dede:likearticle}随机展示相关文章,增加新鲜感。
