找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 153|回复: 0

[cms教程] 织梦DedeCMS通过Tag标签获取相关文章

[复制链接]

该用户从未签到

发表于 2020-10-31 09:51:44 | 显示全部楼层 |阅读模式

您需要 登录 才可以下载或查看,没有账号?立即注册

×
织梦的相关文章是根据tag和文章关键词来的,不过效果不是特别的好,获取文章的数量是比较少的。对织梦系统自带的相关文章标签感兴趣的朋友,可以去看likearticle|织梦相关文章标签一文。
         
        今天给大家分享的是只根据文章的Tag标签来调用相关文章的自定义标签,在手动填写Tag标签的情况下,效果还是非常不错的。先说一下如何给织梦系统增加自定义标签,只需要把自定义标签文件上传到\include\taglib目录即可。下面是根据Tag标签获取相关文章的自定义dede:arctag标签代码:
         
          
       
        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}
        [field:title/,
        {/dede:arctag}
        你可以根据自己的需要,对标签进行自我拓展。
回复

使用道具 举报

网站地图|页面地图|文字地图|Archiver|手机版|小黑屋|找资源 |网站地图

GMT+8, 2024-11-25 20:49

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表