• 全国400电话网上服务平台
    强大号码库资源任选,方便,快捷,快速开通。
    咨询热线:400-1100-266  

    DEDECMS相关文档不相关的解决方法
    POST TIME:2020-04-08 22:44
    关键字描述:相关 方法 解决 文档   " < row-> ss 文章

      DEDE的相关文章完全不相关,有朋友在DEDE官方放出根据TAG显示相关文章,也是很不错,可惜我在根据那边文章改DEDE代码后老是不行,可能是能力有限,当然也有可能是代码有问题
      
      现在终于出了解决办法
      
      1 在 inc_functions.php 最后?>前 加上
      
      //查询指定栏目里包含相应关键字的文章,并列出
      
      //参数说明:$showImg 是否显示缩略图,0表示不显示,1表示显示
      
      // $titleLen 标题长度,0表示无限
      
      // $rowCount 输出行数,0表示无限
      
      // $typeid 栏目ID,0表示所有栏目
      
      // $keyWord 关键字,字符串
      
      function ShowKeyWordArc($showImg,$titleLen,$rowCount,$typeid,$keyWord){
      
      $dsql = new DedeSql(false);
      
      $sql = TypeGetSunID($typeid,$dsql);
      
      //关键字分词技术
      
      $ks = explode(" ",$keyWord);
      
      foreach($ks as $k){
      
      $k = trim($k);
      
      if ($k!="") {
      
      $kwsqlarr[] = " (dede_archives.title like '%$k%') ";
      
      //$kwsqlarr[] = " (dede_archives.keywords like '%$k%') "; //如果需要相关到其它文章的关键字,解除此行注释
      
      }
      
      }
      
      $where = implode(' OR ',$kwsqlarr);
      
      $sql="Select tp.namerule,tp.typedir,dede_full_search.aid,dede_full_search.url,dede_archives.* From dede_full_search left join dede_archives on dede_full_search.aid=dede_archives.ID left join dede_arctype tp on dede_archives.typeid=tp.ID where {$sql} and ((dede_archives.title like '%".$keyWord."%') or $where) order by dede_full_search.aid desc";
      
      $dsql->SetQuery($sql);
      
      $dsql->Execute();
      
      $ss="";
      
      $i=0;
      
      while($row=$dsql->GetObject()){
      
      $url=GetFileUrl($row->ID,$row->typeid,$row->senddate,$row->title,$row->ismake,$row->arcrank,$row->namerule,$row->typedir,$row->money);
      
      if ($showImg==0){
      
      $ss=$ss."<LI><a href='".$url."' target=_blank>";
      
      if ($titleLen!=0) $ss=$ss.cn_substr($row->title,$titleLen);
      
      else $ss=$ss.$row->title;
      
      $ss=$ss."</A></LI>";
      
      }else{
      
      $ss=$ss."<LI><span class='sjdqimggl'><a href='".$url."' target=_blank>";
      
      if ($row->litpic!="") $ss=$ss."<img src='".$row->litpic."' alt='".$row->title."' />";
      
      else $ss=$ss."<img src='/images/titl.gif'/>";
      
      $ss=$ss."</a></span><span class='sjdqtxttl'><a href='".$url."' target=_blank>";
      
      if ($titleLen!=0) $ss=$ss.cn_substr($row->title,$titleLen);
      
      else $ss=$ss.$row->title;
      
      $ss=$ss."</A></span></LI>";
      
      }
      
      $i ;
      
      if (($rowCount!=0)&&($i>=$rowCount)) return $ss;
      
      }
      
      return $ss;
      
      }
      
      2 放在文章模板页内
      
      {dede:field name=’keywords’ function=’ShowKeyWordArc(0,32,10,0,”@me”)’/}
      
      就表示是取所有栏目内的相关文章(与当前文章的关键字相关),标题长度最大32,最多显示10条,不显示缩略图
      
      或
      
      {dede:field name=’keywords’ function=’ShowKeyWordArc(0,32,10,0,”高三语文”)’/}
      
      可以找到标题里,含有“高三 语文”,或者含有“高三”或“语文”的文章
      
      例如,这一段:
      
      相关文章
      
      {dede:likeart titlelen=’24′ row=’10′}
      
      [field:textlink/]< >
      
      {/dede:likeart}
      
      就改成:
      
      相关文章
      
      {dede:field name=’keywords’ function=’ShowKeyWordArc(0,32,10,0,”@me”)’/}
      
      申明:这个函数不是我写的
      
      根据关键字来相关文章,就用户体验以及SEO来说都是非常好的
      
      但是唯一不好的地方就是生成静态的时候会慢很多,哈哈,服务器又要辛苦了
    
    关于我们 | 付款方式 | 建站知识 | 增值服务 | 网站模板
    Copyright © 2003-2016
    时间:9:00-21:00 (节假日不休)
    版权所有:巨人网络(扬州)科技有限公司
    总部地址:江苏省信息产业基地11号楼四层
    《增值电信业务经营许可证》 苏B2-20120278
    X

    截屏,微信识别二维码

    微信号:veteran88

    (点击微信号复制,添加好友)

     打开微信

    微信号已复制,请打开微信添加咨询详情!