织梦cms栏目关联文章

关联文章概述

在织梦CMS中,关联文章是指在文章详情页中展示与当前文章内容相关的其他文章,以增加用户停留时间和页面浏览量。关联文章的推荐策略可以基于同栏目、同TAG标签、关键词匹配等多种方式。

一、同栏目关联(最简单)

在文章内容页推荐同栏目的其他文章:

<!-- 同栏目最新文章 -->
<div class="related">
  <h3>本栏目最新文章</h3>
  {dede:arclist typeid='{dede:field.typeid/}' row='8' 
    titlelen='40' orderby='pubdate'}
  <li>
    <a href="[field:arcurl/]">[field:title/]</a>
    <span>[field:pubdate function="MyDate('m-d',@me)"/]</span>
  </li>
  {/dede:arclist}
</div>

二、基于TAG标签关联

<!-- 通过TAG标签获取关联文章 -->
{dede:likearticle row='8' titlelen='40'}
<li>
  <a href="[field:arcurl/]">[field:title/]</a>
</li>
{/dede:likearticle}

<!-- likearticle标签参数 -->
<!-- row: 返回数量 -->
<!-- titlelen: 标题长度 -->
<!-- mytypeid: 限定栏目ID -->
<!-- ereg: 正则匹配规则 -->

三、通过关键词匹配关联

<!-- 通过SQL匹配关键词关联 -->
{dede:sql sql="SELECT a.id,a.title,a.pubdate,a.click 
FROM dede_archives a 
WHERE a.keywords LIKE '%{dede:field name='keywords' runphp='yes'}
  $kw=explode(',',@me); echo trim($kw[0]);
{/dede:field}%' 
AND a.id !={dede:field.id/}
ORDER BY a.pubdate DESC LIMIT 10"}
<li>
  <a href="/plus/view.php?aid=[field:id/]">[field:title/]</a>
</li>
{/dede:sql}

四、复合关联(同栏目 + TAG标签)

<div class="related-articles">
  <div class="tab-nav">
    <span class="active">相关文章</span>
    <span>本栏目推荐</span>
  </div>
  
  <div class="tab-content">
    <!-- TAB1:TAG相关文章 -->
    <div class="tab-panel">
      {dede:likearticle row='6' titlelen='36'}
      <li><a href="[field:arcurl/]">[field:title/]</a></li>
      {/dede:likearticle}
    </div>
    
    <!-- TAB2:同栏目热门 -->
    <div class="tab-panel" style="display:none">
      {dede:arclist typeid='{dede:field.typeid/}' row='6' 
        orderby='click' titlelen='36'}
      <li><a href="[field:arcurl/]">[field:title/]</a></li>
      {/dede:arclist}
    </div>
  </div>
</div>

五、排除当前文章

确保关联列表中不包含当前阅读的文章:

<!-- 使用limit参数排除当前文章 -->
{dede:arclist typeid='{dede:field.typeid/}' row='6' 
  limit='0,6' noflag='h' orderby='pubdate'}
[field:global name='autoindex' runphp='yes']
if(@me==1 && $GLOBALS['aid']==$refObj->Fields['id']) {
    @me='';
}
[/field:global]
<li><a href="[field:arcurl/]">[field:title/]</a></li>
{/dede:arclist}

六、利用副栏目实现交叉关联

文章的"副栏目"功能(typeid2)也可以用于关联推荐:

<!-- 获取与当前文章有相同副栏目的文章 -->
{dede:sql sql="SELECT a.id,a.title 
FROM dede_archives a 
WHERE a.typeid2=(SELECT typeid2 FROM dede_archives WHERE id={dede:field.id/})
AND a.id !={dede:field.id/}
ORDER BY a.pubdate DESC LIMIT 8"}
<li><a href="/plus/view.php?aid=[field:id/]">[field:title/]</a></li>
{/dede:sql}
用户体验建议:关联文章的数量建议控制在6-10条之间。过多会分散用户注意力,过少则关联意义不大。优先展示有缩略图的关联文章可以提升点击率。