电脑知识与技术学习,让我们一起成长!

当前位置:首页 > 网络知识 > 文章

dedecms用tags标签 关键词来显示调用相关文章

发布时间:2016-08-21 13:35:00| 来源:电脑知识学习网 | 点击:

从Seo的角度出发,dedecms织梦网站系统默认相关文章根本就不是显示相关的,显示的乱七八糟,很多站长朋友都希望dedecms相关文章调用tags标签 关键词来显示与之相关联的文章,这样不仅搜索引擎喜欢,从用户的角度考虑也减少了网站跳出率,这样的网站更受欢迎!

dedecms用tags标签 关键词来显示调用相关文章更利于seo

解决方法:单用tag来调用相关文章,也可用tag+keyword来调用相关文章(默认tag优先于keyword,可以自己排序),非常适合SEO,经测试效果极佳。

1.把以下代码保存到文章内容页面模版的适当位置(一般修改替换:article_article.htm 模板代码)

<div class="m_Box23 FL">     <div class="m_T1"><h3>相关文章</h3></div>        <ul>         {dede:likearticle col='1' row='10' titlelen='70' eregtype=all|tag|keyword}         <li>·<a href="[field:arcurl/]">[field:title/]</a></li>            {/dede:likearticle}        </ul>    </div>

说明:

col='1       显示1列

row='10'     显示10行

titlelen='70'标题70个字符长度

eregtype=all|tag|keyword 显示优先级

2.把以下php代码替换掉include/taglib/likearticle.lib里的代码

<?phpif(!defined('DEDEINC')) exit('Request Error!');/*--------------------------------------按关键词关连文章的标签eregtype属性 eregtype = keyword 只匹配关键字eregtype = tag 只匹配tageregtype = all tag优先,不存在tag则匹配关键字mytypeid='' 栏目ID,多个栏目用,隔开---------------------------------------*/function lib_likearticle(&$ctag,&$refObj){ global $dsql;      //属性处理 $attlist="row|12,titlelen|28,infolen|150,col|1,tablewidth|100,mytypeid|0,byabs|0,imgwidth|120,imgheight|90"; FillAttsDefault($ctag->CAttribute->Items,$attlist); extract($ctag->CAttribute->Items, EXTR_SKIP); $revalue = '';      if(empty($tablewidth)) $tablewidth = 100; if(empty($col)) $col = 1; $colWidth = ceil(100/$col); $tablewidth = $tablewidth."%"; $colWidth = $colWidth."%";      $ids = array(); $tids = array();              $typeid = ( !empty($mytypeid) ? $mytypeid : 0 ); if(empty($typeid)) {   if(!empty($refObj->Typelink->TypeInfos['reid'])) {     $typeid = $refObj->Typelink->TypeInfos['reid'];   }   else {     if(!empty($refObj->Fields['typeid'])) $typeid = $refObj->Fields['typeid'];   } }      if( !empty($typeid) && !ereg(',', $typeid) ) {   $typeid = GetSonIds($typeid); } if(!empty($refObj->Fields['tags']) && $eregtype != 'keyword' ) {  $tags = explode(',', addslashes($refObj->Fields['tags']));                     $getsql = " tag like '".join("' OR tag like '", $tags)."' ";                     $dsql->Execute('me', "Select * From zmb_tagindex where $getsql ");  while($arow = $dsql->GetArray('me')) {   $tids[] = $arow['id'];  }  $tid = join(',', $tids);  if($tid!='')  {   $dsql->Execute("me", "Select aid From zmb_taglist where tid in($tid) And arcrank > -1 group by aid order by aid desc limit 0, $row");   while($arow = $dsql->GetArray("me"))   {    $ids[] = $arow['aid'];                                $arcid =  $refObj->Fields['aid'];   }  } }      if($eregtype == 'tag' && count($ids) == 0 ) {  return ''; } else {  if(count($ids) > 0)          {                 if(!empty($typeid)) {     // $typeid = " And arc.typeid in($typeid) And arc.id<>$arcid "; 调用整站相关文章     $typeid = "And arc.id<>$arcid";    }   $idsStr = join(',', $ids);   $query = "Select arc.*,tp.typedir,tp.typename,tp.corank,tp.isdefault,tp.defaultname,tp.namerule,            tp.namerule2,tp.ispart,tp.moresite,tp.siteurl,tp.sitepath            from zmb_archives arc left join zmb_arctype tp on arc.typeid=tp.id            where arc.id in($idsStr) $typeid order by arc.id desc";  }  else  { $limitRow = $row - count($ids); $keyword = ''; if(!empty($refObj->Fields['keywords'])) {   $keywords = explode(',' , trim($refObj->Fields['keywords']));   $keyword = '';   $n = 1;   foreach($keywords as $k)   {      if($n > 3)  break;                if(trim($k)=='') continue;      else $k = addslashes($k);                $keyword .= ($keyword=='' ? " CONCAT(arc.keywords,' ',arc.title) like '%$k%' " : " OR CONCAT(arc.keywords,' ',arc.title) like '%$k%' ");       $n++;   } } $arcid = (!empty($refObj->Fields['id']) ? $refObj->Fields['aid'] : 0); if( empty($arcid) || $byabs==0 ) {  $orderquery = " order by arc.id desc ";   } else {  $orderquery = " order by ABS(arc.id - ".$arcid.") ";  } if($keyword != '') {    if(!empty($typeid)) {      $typeid = " And arc.typeid in($typeid) And arc.id<>$arcid ";    }    $query = "Select arc.*,tp.typedir,tp.typename,tp.corank,tp.isdefault,tp.defaultname,tp.namerule,            tp.namerule2,tp.ispart,tp.moresite,tp.siteurl,tp.sitepath            from zmb_archives arc left join zmb_arctype tp on arc.typeid=tp.id            where arc.arcrank>-1 and ($keyword)  $typeid $orderquery limit 0, $row"; } else {   if(!empty($typeid)) {     $typeid = " arc.typeid in($typeid) And arc.id<>$arcid ";   }   $query = "Select arc.*,tp.typedir,tp.typename,tp.corank,tp.isdefault,tp.defaultname,tp.namerule,            tp.namerule2,tp.ispart,tp.moresite,tp.siteurl,tp.sitepath            from zmb_archives arc left join zmb_arctype tp on arc.typeid=tp.id           where arc.arcrank>-1 and  $typeid $orderquery limit 0, $row";                   }              }           } $innertext = trim( $ctag->GetInnerText() ); if($innertext=='') $innertext = GetSysTemplets('part_arclist.htm'); $dsql->SetQuery($query); $dsql->Execute('al');  $artlist = ''; if($col > 1) {  $artlist = "<table width='$tablewidth' border='0' cellspacing='0' cellpadding='0'>/r/n"; } $dtp2 = new DedeTagParse(); $dtp2->SetNameSpace('field', '[', ']'); $dtp2->LoadString($innertext); $GLOBALS['autoindex'] = 0; $line = $row; for($i=0; $i < $line; $i++) {  if($col>1) $artlist .= "<tr>/r/n";  for($j=0; $j < $col; $j++)  {   if($col>1) $artlist .= " <td width='$colWidth'>/r/n";   if($row = $dsql->GetArray("al"))   {    $ids[] = $row['id'];    //处理一些特殊字段    $row['info'] = $row['infos'] = cn_substr($row['description'],$infolen);    $row['id'] =  $row['id'];    if($row['corank'] > 0 && $row['arcrank']==0)    {      $row['arcrank'] = $row['corank'];    }    $row['filename'] = $row['arcurl'] = GetFileUrl($row['id'],$row['typeid'],$row['senddate'],$row['title'],$row['ismake'],    $row['arcrank'],$row['namerule'],$row['typedir'],$row['money'],$row['filename'],$row['moresite'],$row['siteurl'],$row['sitepath']);    $row['typeurl'] = GetTypeUrl($row['typeid'],$row['typedir'],$row['isdefault'],$row['defaultname'],$row['ispart'],    $row['namerule2'],$row['moresite'],$row['siteurl'],$row['sitepath']);    if($row['litpic'] == '-' || $row['litpic'] == '')    {     $row['litpic'] = $GLOBALS['cfg_cmspath'].'/images/defaultpic.gif';    }    if(!eregi("^http://",$row['litpic']) && $GLOBALS['cfg_multi_site'] == 'Y')    {     $row['litpic'] = $GLOBALS['cfg_mainsite'].$row['litpic'];    }    $row['picname'] = $row['litpic'];    $row['stime'] = GetDateMK($row['pubdate']);    $row['typelink'] = "<a href='".$row['typeurl']."'>".$row['typename']."</a>";    $row['image'] = "<img src='".$row['picname']."' border='0' width='$imgwidth' height='$imgheight' alt='".ereg_replace("['><]","",$row['title'])."'>";    $row['imglink'] = "<a href='".$row['filename']."'>".$row['image']."</a>";    $row['fulltitle'] = $row['title'];    $row['title'] = cn_substr($row['title'],$titlelen);    if($row['color']!='') $row['title'] = "<font color='".$row['color']."'>".$row['title']."</font>";    if(ereg('b',$row['flag'])) $row['title'] = "<strong>".$row['title']."</strong>";    $row['textlink'] = "<a href='".$row['filename']."'>".$row['title']."</a>";    $row['plusurl'] = $row['phpurl'] = $GLOBALS['cfg_phpurl'];    $row['memberurl'] = $GLOBALS['cfg_memberurl'];    $row['templeturl'] = $GLOBALS['cfg_templeturl'];            if(is_array($dtp2->CTags))    {     foreach($dtp2->CTags as $k=>$ctag)     {      if($ctag->GetName()=='array') {       $dtp2->Assign($k,$row);      }      else {       if(isset($row[$ctag->GetName()])) $dtp2->Assign($k,$row[$ctag->GetName()]);       else $dtp2->Assign($k,'');      }     }     $GLOBALS['autoindex']++;    }    $artlist .= $dtp2->GetResult()."/r/n";   }   //if hasRow   else   {    $artlist .= '';   }   if($col>1) $artlist .= " </td>/r/n";  }  //Loop Col  if($col>1) $i += $col - 1;  if($col>1) $artlist .= " </tr>/r/n"; } //loop line if($col>1) $artlist .= " </table>/r/n"; $dsql->FreeResult("al"); return $artlist;}?>

只需要简单的两步,我们就实现了dedecms文章内容页面以tags标签 关键词来显示调用相关文章。

热门文章

推荐文章