900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > php给文章关键词加内连 织梦实现全站按TAG和关键字调用相关文章教程

php给文章关键词加内连 织梦实现全站按TAG和关键字调用相关文章教程

时间:2021-11-12 03:41:44

相关推荐

php给文章关键词加内连 织梦实现全站按TAG和关键字调用相关文章教程

织梦DedeCms5.7全站按TAG和关键字调用相关文章方法,可单用tag来调用相关文章,也可用tag+keyword来调用相关文章(默认tag优先于keyword,可以自己排序),非常适合SEO,经测试效果极佳。

1.把下边代码保存到文章模版的适当位置

相关文章

{dede:likearticlecol='2'row='10'titlelen='42'eregtype=all|tag|keyword}

[field:title/]

{/dede:likearticle}

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

if(!defined('DEDEINC'))exit('RequestError!');

/*--------------------------------------

按关键词关连文章的标签

eregtype属性

eregtype=keyword只匹配关键字

eregtype=tag只匹配tag

eregtype=alltag优先,不存在tag则匹配关键字

mytypeid=''栏目ID,多个栏目用,隔开

---------------------------------------*/

functionlib_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="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";

}

//

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="

}

$dtp2=newDedeTagParse();

$dtp2->SetNameSpace('field','[',']');

$dtp2->LoadString($innertext);

$GLOBALS['autoindex']=0;

$line=$row;

for($i=0;$i

{

if($col>1)$artlist.="

\r\n";

for($j=0;$j

{

if($col>1)$artlist.="

\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']="".$row['typename']."";

$row['image']="";

$row['imglink']="".$row['image']."";

$row['fulltitle']=$row['title'];

$row['title']=cn_substr($row['title'],$titlelen);

if($row['color']!='')$row['title']="".$row['title']."";

if(ereg('b',$row['flag']))$row['title']="".$row['title']."";

$row['textlink']="".$row['title']."";

$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.="

\r\n";

}

//LoopCol

if($col>1)$i+=$col-1;

if($col>1)$artlist.="

\r\n";

}

//loopline

if($col>1)$artlist.="

\r\n";

$dsql->FreeResult("al");

return$artlist;

}

?>

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。