在岁月中跋涉,每个人都有自己的故事,看淡心境才会秀丽,看开心情才会明媚。累时歇一歇,随清风漫舞,烦时静一静,与花草凝眸,急时缓一缓,和自己微笑。
织梦DedeCms5.7全站按TAG和关键字调用相关文章方法,可单用tag来调用相关文章,也可用tag+keyword来调用相关文章(默认tag优先于keyword,可以自己排序),非常适合SEO,经测试效果极佳。
1.把下边代码保存到文章模版的适当位置
<divclass="xgwz"> <dlclass="tbox"> <dt><strong>相关文章</strong></dt> <dd> <ulclass="c1ico2"> {dede:likearticlecol='2'row='10'titlelen='42'eregtype=all|tag|keyword} <li><arel="nofollow noopener noreferrer" href="[field:arcurl/]">[field:title/]</a></li> {/dede:likearticle} </ul> </dd> </dl> </div>
2.把下边的php代码替换掉include/taglib/likearticle.lib里的代码
<?php if(!defined('DEDEINC'))exit('RequestError!'); /*-------------------------------------- 按关键词关连文章的标签 eregtype属性 eregtype=keyword只匹配关键字 eregtype=tag只匹配tag eregtype=alltag优先,不存在tag则匹配关键字 mytypeid=''栏目ID,多个栏目用,隔开 ---------------------------------------*/ functionlib_likearticle(&$ctag,&$refObj) { global$dsql; //属性处理来源:http://www.dede58.com $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="taglike'".join("'ORtaglike'",$tags)."'"; $dsql->Execute('me',"Select*Fromzmb_tagindexwhere$getsql"); while($arow=$dsql->GetArray('me')){ $tids[]=$arow['id']; } $tid=join(',',$tids); if($tid!='') { $dsql->Execute("me","SelectaidFromzmb_taglistwheretidin($tid)Andarcrank>-1groupbyaidorderbyaiddesclimit0,$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="Andarc.typeidin($typeid)Andarc.id<>$arcid";调用整站相关文章 $typeid="Andarc.id<>$arcid"; } $idsStr=join(',',$ids); $query="Selectarc.*,tp.typedir,tp.typename,tp.corank,tp.isdefault,tp.defaultname,tp.namerule, tp.namerule2,tp.ispart,tp.moresite,tp.siteurl,tp.sitepath fromzmb_archivesarcleftjoinzmb_arctypetponarc.typeid=tp.id wherearc.idin($idsStr)$typeidorderbyarc.iddesc"; } else { $limitRow=$row-count($ids); $keyword=''; if(!empty($refObj->Fields['keywords'])) { $keywords=explode(',',trim($refObj->Fields['keywords'])); $keyword=''; $n=1; foreach($keywordsas$k) { if($n>3)break; if(trim($k)=='')continue; else$k=addslashes($k); $keyword.=($keyword==''?"CONCAT(arc.keywords,'',arc.title)like'%$k%'":"ORCONCAT(arc.keywords,'',arc.title)like'%$k%'"); $n++; } } $arcid=(!empty($refObj->Fields['id'])?$refObj->Fields['aid']:0); if(empty($arcid)||$byabs==0){ $orderquery="orderbyarc.iddesc"; } else{ $orderquery="orderbyABS(arc.id-".$arcid.")"; } if($keyword!='') { if(!empty($typeid)){ $typeid="Andarc.typeidin($typeid)Andarc.id<>$arcid"; } $query="Selectarc.*,tp.typedir,tp.typename,tp.corank,tp.isdefault,tp.defaultname,tp.namerule, tp.namerule2,tp.ispart,tp.moresite,tp.siteurl,tp.sitepath fromzmb_archivesarcleftjoinzmb_arctypetponarc.typeid=tp.id wherearc.arcrank>-1and($keyword)$typeid$orderquerylimit0,$row"; } //http://www.dede58.com else { if(!empty($typeid)){ $typeid="arc.typeidin($typeid)Andarc.id<>$arcid"; } $query="Selectarc.*,tp.typedir,tp.typename,tp.corank,tp.isdefault,tp.defaultname,tp.namerule, tp.namerule2,tp.ispart,tp.moresite,tp.siteurl,tp.sitepath fromzmb_archivesarcleftjoinzmb_arctypetponarc.typeid=tp.id wherearc.arcrank>-1and$typeid$orderquerylimit0,$row"; } } } $innertext=trim($ctag->GetInnerText()); if($innertext=='')$innertext=GetSysTemplets('part_arclist.htm'); $dsql->SetQuery($query); $dsql->Execute('al'); $artlist=''; if($col>1){ $artlist="<tablewidth='$tablewidth'border='0'cellspacing='0'cellpadding='0'>\r\n"; } $dtp2=newDedeTagParse(); $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.="<tdwidth='$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']="<arel="nofollow noopener noreferrer" href='".$row['typeurl']."'>".$row['typename']."</a>"; $row['image']="<imgsrc='".$row['picname']."'border='0'width='$imgwidth'height='$imgheight'alt='".ereg_replace("['><]","",$row['title'])."'>"; $row['imglink']="<arel="nofollow noopener noreferrer" href='".$row['filename']."'>".$row['image']."</a>"; $row['fulltitle']=$row['title']; $row['title']=cn_substr($row['title'],$titlelen); if($row['color']!='')$row['title']="<fontcolor='".$row['color']."'>".$row['title']."</font>"; if(ereg('b',$row['flag']))$row['title']="<strong>".$row['title']."</strong>"; $row['textlink']="<arel="nofollow noopener noreferrer" 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->CTagsas$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"; } //ifhasRow else { $artlist.=''; } if($col>1)$artlist.="</td>\r\n"; } //LoopCol if($col>1)$i+=$col-1; if($col>1)$artlist.="</tr>\r\n"; } //loopline if($col>1)$artlist.="</table>\r\n"; $dsql->FreeResult("al"); return$artlist; } ?>
本文织梦如何实现全站按TAG和关键字调用相关文章好代码教程到此结束。平凡人生要用平凡的心去对待,你的人生将会更精彩。小编再次感谢大家对我们的支持!