织梦Tag标签调用相关文章

给大家分享下根据文章的Tag标签来调用相关文章的自定义标签,在手动填写Tag标签的情况下,效果还是非常不错的。先说一下如何给织梦系统增加自定义标签,只需要把自定义标签文件上传到\include\taglib目录即可。

下面是根据Tag标签获取相关文章的自定义dede:arctag标签代码:  

在目录下新建一个arctag.lib.php文件把下面代码写进去。 

<?php  if(!defined('DEDEINC'))exit('Request Error!'); 

functionlib_arctag(&$ctag,&$refObj) 

global$dsql; 

 $ar="row|10"; 

 FillAttsDefault($ctag->CAttribute->Items); 

 extract($ctag->CAttribute->Items); 

 $innertext=$ctag->GetInnerText(); 

 $tcp=newDedeTagParse(); 

 $tcp->SetNameSpace("field","[","]"); 

 $tcp->LoadSource($innertext); 

 $aid=$refObj->Fields['id']; 

 $revalue=''; 

 if($aid){ 

  $ids=array(); 

  $tag=array(); 

  $dsql->Execute("f","select tag from dede_taglist where aid = '$aid'"); 

  while($re=$dsql->GetArray("f")){ 

   $tag[] =$re['tag']; 

  } 

  if($tag){ 

   foreach($tagas$tk){ 

$dsql->Execute("f1","select aid from dede_taglist where tag = '$tk'"); 

while($re1=$dsql->GetArray("f1")){ 

 $ids[] =$re1['aid']; 

   } 

  } 

  if($ids){ 

   $ids =array_unique($ids); 

   $sqa="(".join(",",$ids).")"; 

   $query= "SELECT se.*,tp.typedir,tp.typename,tp.isdefault,tp.defaultname,tp.namerule,tp.namerule2,tp.ispart,tp.moresite,tp.siteurl,tp.sitepath 

FROM `dede_archives` se LEFT JOIN `dede_arctype` tp ON se.typeid=tp.id WHERE  se.id in$sqalimit$row"; 

   $dsql->Execute("f2",$query); 

   while($row1=$dsql->GetArray("f2")){ 

$row1['arcurl'] = GetFileUrl($row1['id'],$row1['typeid'],$row1['senddate'],$row1['title'], 

$row1['ismake'], 

$row1['arcrank'],$row1['namerule'],$row1['typedir'],$row1['money'], 

$row1['filename'],$row1['moresite'],$row1['siteurl'],$row1['sitepath']); 

$row1['title'] = cn_substr($row1['title'],10); 

foreach($tcp->CTagsas$tid=>$tt){ 

 $tcp->Assign($tid,$row1[$tt->GetName()]); 

$revalue.=$tcp->GetResult(); 

   } 

  } 

 } 

   return$revalue; 

注意和你使用的织梦模板编码一致。

前端调用:     

{dede:arctag id=10} 

<ahref="[field:arcurl/]">[field:title/]</a> {/dede:arctag} 

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wsfzdg.html