dede调用相关内容如何指定关键词?

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

使用 likearticle 标签 (最常用、最简单)

这是 DedeCMS 内置的专门用于调用相关文章的标签,使用起来非常方便,它的原理是通过当前文章的关键词(或你指定的关键词)进行模糊匹配。

dede 调用相关内容 指定关键词
(图片来源网络,侵删)

标签结构

{dede:likearticle row='10' titlelen='30'}
    <li>
        <a href="[field:arcurl/]">[field:title/]</a>
    </li>
{/dede:likearticle}

参数详解

  • row='10':调用文章的数量,10 表示调用 10 篇,len='30'的长度,30` 表示最多显示 30 个字符(一个汉字算一个字符)。
  • col='':分列,col='2' 表示每行显示 2 篇。
  • infolen=''简介长度。
  • imgwidth=''imgheight='':缩略图的宽度和高度。
  • typeid=''(重要) 指定栏目 ID,如果你只想在某个特定栏目内查找相关文章,就设置这个参数,留空则全站查找。
  • aid=''(核心) 指定文章 ID,如果不设置,默认是调用当前文章的相关内容,如果你想根据另一篇文章的关键词来查找,就设置 aid='目标文章ID'
  • keyword=''(核心) 直接指定关键词,这是实现你需求最直接的方式,你可以在模板里手动输入一个关键词,系统会根据这个关键词查找相关文章。注意:如果同时设置了 keywordaidkeyword 的优先级更高。

使用 arclistsg 标签 (更灵活、更强大)

arclistsg 是一个更通用的列表标签,功能比 likearticle 更强大,可以实现更复杂的条件查询,它也可以通过关键词来筛选文章。

标签结构

{dede:arclistsg row='10' titlelen='30' keyword='指定的关键词'}
    <li>
        <a href="[field:arcurl/]">[field:title/]</a>
    </li>
{/dede:arclistsg}

参数详解

除了 likearticle 的大部分参数外,arclistsg 还有一些独有的强大参数:

  • keyword='指定的关键词'核心参数,直接在这里填写你想要关联的关键词,多个关键词可以用英文逗号 隔开,表示“与”的关系。
  • channelid='':指定模型 ID。channelid='1' 只调用普通文章。
  • orderby='':排序方式。orderby='hot' (按点击量), orderby='pubdate' (按发布时间)。
  • subday='':指定多少天内的文章。subday='7' 只调用最近 7 天发布的文章。

使用 SQL 查询标签 (最灵活、最复杂)

likearticlearclistsg 无法满足你的复杂需求时(需要关联多个字段、进行复杂的排序等),你可以直接使用 DedeCMS 的 dede:sql 标签来执行自定义的 SQL 语句。

注意: 直接使用 SQL 有一定的风险,SQL 语句写错可能会导致网站出错,请确保你对 SQL 语句有一定了解。

dede 调用相关内容 指定关键词
(图片来源网络,侵删)

标签结构

{dede:sql sql="
    SELECT a.*
    FROM `dede_archives` a
    LEFT JOIN `dede_taglist` t ON a.id = aid
    WHERE t.tag like '%指定的关键词%'
    ORDER BY a.pubdate DESC
    LIMIT 0, 10
"}
    <li>
        <a href="[field:arcurl/]">[field:title/]</a>
    </li>
{/dede:sql}

代码详解

  1. *`SELECT a.**: 从dede_archives(文章主表) 中选择所有字段。a` 是表的别名,方便书写。
  2. FROMdede_archivesa: 指定主表为 dede_archives
  3. LEFT JOINdede_taglistt ON a.id = aid: 左连接 dede_taglist (标签列表表),通过文章 ID (a.idt.aid) 关联,这样我们就可以通过标签表来筛选文章。
  4. WHERE t.tag like '%指定的关键词%': 核心筛选条件,在 taglist 表的 tag 字段中查找包含“指定的关键词”的记录。 是 SQL 中的通配符,表示任意字符。
  5. ORDER BY a.pubdate DESC: 按发布时间倒序排列。
  6. LIMIT 0, 10: 从第 0 条记录开始,查询 10 条,等同于 row='10'
  7. [field:arcurl/][field:title/]: 在 dede:sql 中,这些字段调用需要和主表 dede_archives 的字段名一致,idtitletypeid 等,获取文章链接需要自己拼接,通常使用 "/plus/view.php?aid={dede:field.id/}"

实际应用场景示例

假设你的文章详情页是 article_article.htm,你想在文章下方显示与“织梦CMS”相关的 5 篇文章。

调用当前文章的相关内容 (最常见)

直接使用 likearticle,它会自动获取当前文章的关键词进行匹配。

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

根据一个固定的关键词调用相关内容

你想在所有文章的页脚都显示与“网站建设”相关的文章。

使用 arclistsg 标签,直接指定关键词。

dede 调用相关内容 指定关键词
(图片来源网络,侵删)
<h3>网站建设相关文章</h3>
<ul class="footer-related">
    {dede:arclistsg row='6' titlelen='30' keyword='网站建设'}
        <li><a href="[field:arcurl/]">[field:title/]</a></li>
    {/dede:arclistsg}
</ul>

根据不同文章显示不同相关内容

你在文章列表页,想在每篇文章旁边显示与该文章相关的其他文章。

你需要在列表循环中嵌套 likearticle 标签,并指定 aid

{dede:list pagesize='10'}
    <div class="list-item">
        <h2><a href="[field:arcurl/]">[field:title/]</a></h2>
        <p>[field:description/]...</p>
        <!-- 在这里调用与当前文章相关的文章 -->
        <div class="related-in-list">
            <h4>相关阅读</h4>
            {dede:likearticle row='3' titlelen='20' aid='[field:id]'}
                <a href="[field:arcurl/]" title="[field:title/]">[field:title/]</a>
            {/dede:likearticle}
        </div>
    </div>
{/dede:list}

注意: 在列表循环中嵌套调用会增加数据库查询次数,如果列表条目多,可能会对网站性能产生一定影响。

总结与建议

方法 优点 缺点 适用场景
likearticle 简单、快捷、专用,专为相关文章设计。 灵活性相对较低,依赖关键词匹配质量。 绝大多数相关文章调用场景,尤其是在文章详情页。
arclistsg 功能强大,可以结合多种条件(关键词、栏目、时间等)。 参数较多,需要花时间学习。 需要更复杂筛选条件的列表调用,标签云”下的文章列表。
dede:sql 极度灵活,可以实现任何复杂的 SQL 查询逻辑。 有一定风险,对使用者的 SQL 知识有要求,代码可读性差。 likearticlearclistsg 无法解决的复杂查询需求。

对于你的需求——“dede 调用相关内容 指定关键词”,强烈推荐使用方法一 (likearticle 配合 keyword 参数) 或方法二 (arclistsg),它们既安全又高效,足以应对 99% 的情况。

-- 展开阅读全文 --
头像
HTML零食网站织梦模板如何使用?
« 上一篇 2025-12-14
C语言Hello World程序为何是入门第一课?
下一篇 » 2025-12-14

相关文章

取消
微信二维码
支付宝二维码

目录[+]