dede5.7如何调用相关文章?

99ANYc3cd6
预计阅读时长 16 分钟
位置: 首页 DEDE建站 正文

核心标签:{dede:likearticle}

这个标签是调用相关文章的核心,它可以根据当前文章的标题、关键词、栏目等信息,查找并返回内容相似的文章列表。

dede5.7相关文章调用
(图片来源网络,侵删)

基础语法

{dede:likearticle}
    <li>
        <a href="[field:arcurl/]">[field:title/]</a>
    </li>
{/dede:likearticle}

主要参数说明

你可以通过为 {dede:likearticle} 添加参数来精确控制调用结果。

参数 说明 示例
row 调用文章的数量,默认为 10 row='5' (调用5篇)
col 每行显示的列数,默认为 1 col='2' (每行2篇,会自动换行)
infolen 摘要显示的字数长度,默认为 160 infolen='50' (摘要最多显示50个字符)
orderby 排序方式,可选值:
rand (随机)、click (按点击量)、pubdate (按发布日期),默认为 rand
orderby='click' (按点击量从高到低)
idlist (重要) 指定文章ID列表来调用,用逗号隔开,当此参数存在时,其他所有相关条件(如关键词、栏目)都将失效。 idlist='1,3,5,8'
channelid 指定频道ID来调用,默认为当前文章所在的频道。 channelid='1' (调用文章频道)
typeid (重要) 指定栏目ID来调用,如果指定了此参数,则只调用该栏目下的相关文章。 typeid='5'
keyword (重要) 指定关键词来调用,如果指定了此参数,则只包含该关键词的文章。 keyword='织梦,DedeCMS'
addfields (重要) 调用附加表里的字段,如果你想调用文章的“文章来源”(source)字段,就需要加上这个参数。 addfields='source,writer'
subday 调用指定天数内发布的相关文章。 subday='30' (调用30天内发布的文章)
noflag 排除带有特定标志的文章,排除“头条”文章。 noflag='h'
limit (高级用法) 用于分页,格式为 "起始位置,记录数"。limit='0,5' 表示从第0篇开始,取5篇。 limit='0,5'

常用场景代码示例

场景1:最基础的相关文章调用(按标题和关键词)

这是最常见的情况,在文章内容页底部显示几篇相关文章。

<h3>相关文章</h3>
<ul class="related-article-list">
    {dede:likearticle row='5' titlelen='20'}
        <li><a href="[field:arcurl/]" title="[field:title/]">[field:title/]</a></li>
    {/dede:likearticle}
</ul>

效果: 调用5篇相关文章,标题最多显示20个字符。


场景2:带摘要和发布日期的相关文章

为了让用户更了解文章内容,可以显示摘要和日期。

dede5.7相关文章调用
(图片来源网络,侵删)
<h3>猜你喜欢</h3>
<div class="like-container">
    {dede:likearticle row='4' titlelen='30' infolen='100' orderby='click'}
        <div class="like-item">
            <a href="[field:arcurl/]" class="like-title">[field:title/]</a>
            <p class="like-summary">[field:info/]...</p>
            <span class="like-date">[field:pubdate function="MyDate('Y-m-d', @me)"/]</span>
        </div>
    {/dede:likearticle}
</div>

说明:

  • infolen='100':设置摘要长度为100字符。
  • orderby='click':按点击量排序,优先显示热门文章。
  • [field:pubdate function="MyDate('Y-m-d', @me)"/]:使用函数格式化日期,@me 代表当前字段的原始值。

场景3:调用指定栏目下的相关文章

我们只想在当前栏目内查找相关文章,而不是全站,这时就用 typeid 参数。

<h3>本栏目相关文章</h3>
<ul>
    {dede:likearticle row='6' typeid=''}
        <li><a href="[field:arcurl/]">[field:title/]</a></li>
    {/dede:likearticle}
</ul>

重要提示:

  • typeid='' 中的 是一个空值,它代表当前文章所在的栏目ID,DedeCMS会自动识别并替换。
  • 如果你指定了具体的ID,如 typeid='5',那么它就只会调用ID为5的栏目下的文章。

场景4:调用带有附加字段的相关文章

如果你的文章模型增加了“文章来源”、“作者”、“产品型号”等附加字段,需要使用 addfields 参数来调用。

dede5.7相关文章调用
(图片来源网络,侵删)

假设你的附加表里有 source (来源) 和 writer (作者) 字段。

<h3>相关推荐</h3>
<ul>
    {dede:likearticle row='3' addfields='source,writer'}
        <li>
            <a href="[field:arcurl/]">[field:title/]</a>
            <span>来源:[field:source/]</span>
            <span>作者:[field:writer/]</span>
        </li>
    {/dede:likearticle}
</ul>

说明:

  • addfields='source,writer' 告诉系统需要从附加表中取出这两个字段的值。
  • [field:source/][field:writer/] 就像调用普通字段一样使用。

场景5:排除当前文章,避免重复显示

默认情况下,相关文章列表中可能会包含当前文章本身,我们可以通过 idlist 参数巧妙地排除它。 页模板(通常是 article_article.htm)中,可以通过 {dede:field.id/} 获取当前文章的ID。

<h3>相关文章</h3>
<ul>
    {dede:likearticle row='5' idlist=''}
        <li><a href="[field:arcurl/]" title="[field:title/]">[field:title/]</a></li>
    {/dede:likearticle}
</ul>

说明:

  • idlist='' 同样是一个特殊用法,在文章内容页模板中,它会自动获取除当前文章ID之外的相关文章。
  • 如果你想手动排除某几篇文章,可以写成 idlist='10,20',系统会调用除了ID为10和20之外的相关文章。

注意事项与排错

  1. 标签位置{dede:likearticle} 标签必须放在文章内容页模板(如 article_article.htm)中,因为它依赖于 {dede:field.id/} 等当前文章的环境变量。
  2. 数据更新:相关文章的索引是在文章发布或更新时生成的,如果你修改了文章的关键词或标题,相关文章列表可能不会立即更新,可以尝试在后台“更新系统缓存”或“一键更新网站”来刷新索引。
  3. 没有相关文章:如果调用结果为空,可能是因为:
    • 当前文章没有设置关键词。
    • 系统内没有其他文章与当前文章的关键词或标题匹配。
    • typeididlist 参数设置得太严格,导致没有符合条件的文章。
  4. 样式问题:标签只负责输出数据,列表的最终样式(如CSS布局)需要你自己编写。

希望这份详细的指南能帮助你完美地在 DedeCMS 5.7 中调用相关文章!

-- 展开阅读全文 --
头像
C语言合法字符型常数有哪些?
« 上一篇 02-05
C语言程序设计教程与上机指导如何高效学习?
下一篇 » 02-05
取消
微信二维码
支付宝二维码

目录[+]