織夢的相關文章是根據tag和文章關鍵詞來的,不過效果不是特別的好,獲取文章的數量是比較少的。對織夢系統自帶的相關文章標簽感興趣的朋友,可以去看likearticle|織夢相關文章標簽一文。
今天給大家分享的是只根據文章的Tag標簽來調用相關文章的自定義標簽,在手動填寫Tag標簽的情況下,效果還是非常不錯的。先說一下如何給織夢系統增加自定義標簽,只需要把自定義標簽文件上傳到/include/taglib目錄即可。下面是根據Tag標簽獲取相關文章的自定義dede:arctag標簽代碼:
| <?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; } |
復制以上的代碼,使用Dreamweaver等專業軟件保存為arctag.lib.php文件,注意和你使用的織夢DedeCMS系統編碼一致。dede:arctag標簽在織夢模板中的用法如下:
| {dede:arctag id=10} <ahref="[field:arcurl/]">[field:title/]</a> {/dede:arctag} |
你可以根據自己的需要,對標簽進行自我拓展。
新聞熱點
疑難解答