织梦body内如何调用相关标题?

99ANYc3cd6
预计阅读时长 18 分钟
位置: 首页 织梦建站 正文

使用官方标签{dede:likearticle}(最推荐)

这是织梦官方提供的、最简单且最规范的方法,它专门用于调用与当前文章相关的文章列表。

织梦body里面调用相关标题
(图片来源网络,侵删)

基本用法

将以下代码直接放置在你希望显示“相关文章”的位置,通常是在{dede:body}标签的后面。

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

标签参数详解

{dede:likearticle} 标签支持多个参数,让你可以自定义显示效果:

织梦body里面调用相关标题
(图片来源网络,侵删)
  • row='10':调用相关文章的数量,默认是10条,len='50'`:相关文章标题的长度,截取多少个字符,默认是30。
  • infolen='160':相关文章摘要的长度,默认为0(不显示摘要)。
  • orderby='rand':排序方式。
    • rand:随机排序(最常用,避免每次都一样)。
    • click:按点击量排序。
    • pubdate:按发布时间排序。
  • typeid='':指定调用特定栏目ID下的相关文章,留空则默认在当前文章所在栏目及其父级栏目中查找。
  • imgwidth='120'imgheight='90':如果需要调用文章的缩略图,可以设置图片的宽高。

带缩略图和摘要的示例

这是一个更丰富的示例,包含了标题、缩略图和摘要。

<h3>您可能还感兴趣</h3>
<div class="related-articles">
  {dede:likearticle row='4' titlelen='30' infolen='100' orderby='rand' imgwidth='100' imgheight='70'}
  <div class="related-item">
    <a href="[field:arcurl/]">
      <img src="[field:litpic/]" alt="[field:title/]" width="100" height="70">
    </a>
    <h4><a href="[field:arcurl/]">[field:title/]</a></h4>
    <p>[field:info/]...</p>
  </div>
  {/dede:likearticle}
</div>

注意: 使用此方法时,请确保你的文章有填写缩略图(litpic字段),否则[field:litpic/]会调用不到图片。


使用{dede:arclist}标签(更灵活)

如果你觉得{dede:likearticle}的功能不够用,或者想实现更复杂的逻辑(例如调用全站相关文章),可以使用功能更强大的{dede:arclist}

基本原理

织梦body里面调用相关标题
(图片来源网络,侵删)

{dede:arclist}调用文章列表,我们可以通过设置typeid参数来限定调用的范围,为了实现“相关”,我们可以将typeid设置成当前文章的栏目ID。

实现步骤

第一步:获取当前文章的栏目ID

在模板中,你需要先获取当前文章的栏目ID,并将其赋值给一个变量,这通常在文章内容页模板(article_article.htm)的顶部完成。

{dede:field name='typeid' function='GetTopid(@me)'/}
  • function='GetTopid(@me)':这是一个自定义函数,它会获取当前栏目的顶级栏目ID,这样即使文章在子栏目下,也能调用顶级栏目下的所有文章,范围更广,如果你只想调用本栏目下的文章,直接使用 {dede:field.name='typeid'/} 即可。

第二步:在{dede:body}后面使用{dede:arclist}

将第一步获取的ID通过变量传递给{dede:arclist}typeid参数。

<h3>相关文章</h3>
<ul>
  {dede:arclist typeid='[field:typeid /]' row='8' titlelen='42' orderby='rand'}
  <li>
    <a href="[field:arcurl/]">[field:title/]</a>
  </li>
  {/dede:arclist}
</ul>

注意: 这种方法需要将 {dede:arclist} 放在 {dede:body} 标签之后,因为 {dede:body} 本身就是一个循环,而 typeid 需要在循环外部被定义和获取,在实际模板中,你通常会把获取ID的代码放在模板的顶部,而把{dede:arclist}放在你想要显示的位置。

完整的article_article.htm模板示例结构:

<!DOCTYPE html>
<html>
<head>{dede:field.title/}_织梦CMS</title>
  <meta name="keywords" content="{dede:field.keywords/}" />
  <meta name="description" content="{dede:field.description function='html2text(@me)'/}" />
</head>
<body>
  <h1>{dede:field.title/}</h1>
  <div class="info">
    发布时间:{dede:field.pubdate function='MyDate('Y-m-d H:i',@me)'/} &nbsp; &nbsp;
    来源:{dede:field.source/} &nbsp; &nbsp;
    点击:{dede:field.click/}
  </div>
  <div class="content">
    {dede:field.body/}
  </div>
  <!-- 方式一:直接使用 likearticle 标签 (最简单) -->
  <div class="related-articles">
    <h3>相关推荐</h3>
    <ul>
      {dede:likearticle row='5' titlelen='40' orderby='rand'}
      <li><a href="[field:arcurl/]" title="[field:title/]">[field:title/]</a></li>
      {/dede:likearticle}
    </ul>
  </div>
  <!-- 方式二:使用 arclist 标签 (更灵活) -->
  {dede:geturl typeid='[field:typeid /]'/} 
  <!-- 这行是为了演示,实际获取ID的代码应放在模板顶部 -->
  <div class="related-articles-flex">
    <h3>猜你喜欢</h3>
    {dede:arclist typeid='[field:typeid /]' row='4' titlelen='30' orderby='click'}
    <div class="item">
      <a href="[field:arcurl/]"><img src="[field:litpic/]" alt="[field:title/]"></a>
      <a href="[field:arcurl/]">[field:title/]</a>
    </div>
    {/dede:arclist}
  </div>
</body>
</html>

总结与建议

特性 {dede:likearticle} {dede:arclist}
易用性 非常简单,专为“相关文章”设计 相对复杂,需要手动设置typeid
性能 优秀,系统内部优化 良好,但取决于typeid范围大小
灵活性 一般,参数有限 非常高,支持所有arclist参数
适用场景 绝大多数情况下的首选,快速实现相关文章功能 需要更复杂的调用逻辑,如跨栏目、按特定字段排序等

给你的建议:

  • 如果你只是想在文章下面加一个简单的“相关文章”列表,直接使用 方法一 ({dede:likearticle}),这是最标准、最高效的做法。
  • 如果你对相关文章的展示有特殊要求,比如需要调用特定标签的文章、或者想结合更多字段进行排序,那么可以使用 方法二 ({dede:arclist}) 来实现更精细的控制。

希望这个详细的解释能帮助你解决问题!

-- 展开阅读全文 --
头像
数据库数据还在,为何dede后台列表却不见了?
« 上一篇 2025-12-21
织梦CMS如何获取参数?
下一篇 » 2025-12-21

相关文章

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