likearticle 是织梦一个非常核心且常用的标签,它的主要作用是 根据当前文章的相关性,推荐或列出一系列相关的文章,这不仅能增强用户体验,也能有效增加网站的内链,对SEO优化非常有益。

likearticle 标签的基本用法
likearticle 通常在文章内容页(article_article.htm 模板)中使用。
基础语法
{dede:likearticle}
<a href='[field:arcurl/]'>[field:title/]</a>
{/dede:likearticle}
{dede:likearticle}: 标签开始。[/dede:likearticle]: 标签结束。[field:arcurl/]: 调用相关文章的链接地址。[field:title/]: 调用相关文章的标题。
基础示例
一个更完整的示例,通常会包含一些样式控制:
<!-- 相关文章推荐 -->
<div class="related-article">
<h3>相关文章</h3>
<ul>
{dede:likearticle}
<li>
<a href="[field:arcurl/]" title="[field:title/]">[field:title/]</a>
</li>
{/dede:likearticle}
</ul>
</div>
likearticle 标签的常用属性
likearticle 的强大之处在于其丰富的属性,通过这些属性可以精确控制推荐文章的范围、数量、排序等。
| 属性名 | 含义 | 示例值 | 备注 |
|---|---|---|---|
row |
返回文章的数量 | row='5' |
默认为 10 |
col |
每行显示的文章数量 | col='2' |
默认为 1 |
typeid |
指定栏目ID | typeid='2' |
非常重要,用于限定推荐文章的栏目范围 |
innertext |
单条记录的模板 | innertext='<li><a href="[field:arcurl/]">[field:title/]</a></li>' |
标签对之间的内容会被 innertext 替换 |
orderby |
排序方式 | orderby='hot' |
可选值:id(默认), pubdate(发布日期), hot(点击/人气), sortrank(权重) |
keyword |
关键词匹配 | keyword='' |
如果为空,则使用当前文章的关键词 |
idlist |
指定文章ID列表 | idlist='1,3,5' |
优先级最高,如果设置了此属性,其他筛选条件可能无效 |
属性详解与示例
限制推荐文章的栏目 (typeid)

这是最常用的属性之一,默认情况下,likearticle 会在全站范围内查找相关文章,这可能会导致推荐的文章与当前文章所属栏目不符,通常建议将其限制在当前栏目或同级栏目。
<!-- 只推荐当前栏目下的相关文章 -->
{dede:likearticle typeid='[field:id/]' row='5'}
<a href="[field:arcurl/]">[field:title/]</a>
{/dede:likearticle}
注意:
[field:id/]是当前文章的栏目ID,在文章内容页模板中,可以直接使用。
控制推荐数量 (row 和 col)
row: 设置总共推荐几篇文章。col: 设置每行显示几篇,当col > 1时,织梦会自动生成一个<table>或使用CSS Flexbox/Grid布局来排列。
<!-- 推荐8篇文章,每行显示4篇,共2行 -->
{dede:likearticle row='8' col='4'}
<a href="[field:arcurl/]">[field:title/]</a>
{/dede:likearticle}
使用 innertext 美化样式

innertext 属性可以让你更灵活地控制每条推荐文章的HTML结构,而不用在标签对之间写重复的代码。
{dede:likearticle row='5'
innertext='
<div class="related-item">
<h4><a href="[field:arcurl/]" title="[field:title/]">[field:title/]</a></h4>
<p>发布时间:[field:pubdate function="MyDate('Y-m-d', @me)"/]</p>
</div>
'}
{/dede:likearticle}
按不同方式排序 (orderby)
- 按人气排序 (最常用,推荐热门文章)
{dede:likearticle orderby='hot' row='5'} ... {/dede:likearticle} - 按发布日期排序 (推荐最新文章)
{dede:likearticle orderby='pubdate' row='5'} ... {/dede:likearticle}
指定关键词 (keyword)
默认情况下,likearticle 会使用当前文章的 来查找相关文章,你也可以手动指定关键词。
<!-- 手动指定关键词 "织梦", "CMS" 来查找相关文章 -->
{dede:likearticle keyword='织梦,CMS' row='5'}
...
{/dede:likearticle}
likearticle 的工作原理
理解其工作原理有助于你更好地使用它:
- 获取关键词:标签首先会获取当前文章的 字段(
keywords,这个字段通常是在后台发布文章时手动填写的,也可以通过关键词自动提取功能填充。 - 拆分关键词:将获取到的关键词字符串按逗号()或其他分隔符拆分成一个关键词数组。
- 查询数据库:根据你设置的属性(特别是
typeid),在dede_archives(文章主表) 和dede_arctype(栏目表) 中进行查询。- 它会查找那些 中包含了上述数组中任意一个关键词的文章。
- 会 排除掉当前文章本身,避免推荐自己。
- 返回结果:将查询到的文章列表按照
orderby属性指定的方式进行排序,并最终返回row指定数量的结果。
最佳实践与常见问题
最佳实践
- 务必使用
typeid:为了提高相关性和用户体验,强烈建议使用typeid='[field:id/]'将推荐范围限制在当前栏目。 - 优化关键词:
likearticle的效果好坏,直接取决于文章的 是否准确、有效,请确保文章的关键词填写得恰当。 - 使用
innertext:利用innertext属性可以使模板更整洁、易于维护。 - 结合缓存:织梦默认会对页面进行缓存,相关文章列表也会被缓存,这对于提高网站速度有好处,但如果文章更新频繁,可能需要考虑缓存策略。
常见问题
问题1:为什么推荐的文章完全不相关?
- 原因1:文章没有填写关键词,或者关键词填写得不准确。
- 原因2:关键词过于宽泛或热门(如“技术”、“新闻”),导致匹配到大量不相关的文章。
- 原因3:没有使用
typeid属性,导致跨栏目推荐,内容风马牛不相及。
解决方案:
- 检查并修正文章的关键词。
- 使用更具体、更长的关键词(长尾关键词)。
- 添加
typeid='[field:id/]'属性。
问题2:推荐列表显示的是当前文章本身?
- 原因:这是
likearticle的正常设计,它会自动排除当前文章,如果你看到的列表里有自己,可能是缓存问题或者有其他标签逻辑干扰。 - 解决方案:清除网站缓存后重试。
问题3:推荐文章数量不足或为空?
- 原因1:当前文章的关键词太冷门,或者数据库中找不到包含这些关键词的其他文章。
- 原因2:
row值设置过大,但符合条件的文章数量不足。 - 原因3:
typeid设置的栏目下,确实没有符合条件的文章。
解决方案:
- 尝试放宽关键词范围,或者为文章增加一些相关的热门关键词。
- 适当调小
row的值。 - 检查
typeid是否正确。
likearticle 是织梦CMS中一个功能强大且必须掌握的标签,通过合理运用其属性,特别是 typeid、row、orderby 和 innertext,你可以轻松地为网站打造出非常智能和贴心的相关文章推荐模块,从而提升用户体验和SEO效果,它的核心依赖于 高质量的文章关键词。
