minmal
总版主
总版主
  • UID2
  • 粉丝2
  • 关注2
  • 发帖数7
阅读:3390回复:0

dede文章页调用全站相关文章的方法

楼主#
更多 发布于:2013-05-27 21:58
分享到:
首先我们先看一下dede调用相关文章的机制,大家打开文件:include\taglib\likearticle.lib.php,找到

$query = "SELECT arc.*,tp.typedir,tp.typename,tp.seotitle,tp.corank,tp.isdefault,tp.defaultname,tp.namerule,
                  tp.namerule2,tp.ispart,tp.moresite,tp.siteurl,tp.sitepath
                  FROM `#@__archives` arc LEFT JOIN `#@__arctype` tp ON arc.typeid=tp.id
                  where arc.arcrank>-1 AND ($keyword)  $typeid $orderquery limit 0, $row";
分析一下这句SQL语句的意思,($keyword)  $typeid $orderquery这几个变量,肯定在上文中有所提到

$keyword .= ($keyword=='' ? " CONCAT(arc.keywords,' ',arc.title) LIKE '%$k%' " : " OR CONCAT(arc.keywords,' ',arc.title) LIKE '%$k%' ");

 $typeid = " AND arc.typeid IN($typeid) AND arc.id<>$arcid ";

这里的typeid很显然是调用当前类别下的相关文章,那我们只要把$typeid改一下就可以了,我的方法是修改为:

And arc.id<>$arcid

意思是文章的ID不等于当前的文章的ID,在相关文章里,排除当前文章,把前面的 当前类别给去掉了,那就是所有的类别

好了,我们改好之后,下面就是如何在模板里写标签了

   <ul class="c1 ico2">
                       {dede:likearticle col='2' row='10' titlelen='42'}
                             <li><a href="[field:arcurl/]">[field:title/]</a></li>
                      {/dede:likearticle}
   </ul>

就这么简单,然后我们清理一下缓存,全站更新一下,看是否在文章详细页调用了全站相关的文章
游客

返回顶部