千家信息网

dedecms织梦tag keyword调用相关文章的方法

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,这篇文章给大家分享的是有关dedecms织梦tag keyword调用相关文章的方法的内容。小编觉得挺实用的,因此分享给大家做个参考。一起跟随小编过来看看吧。dedecms织梦tag keyword怎
千家信息网最后更新 2026年11月01日dedecms织梦tag keyword调用相关文章的方法

这篇文章给大家分享的是有关dedecms织梦tag keyword调用相关文章的方法的内容。小编觉得挺实用的,因此分享给大家做个参考。一起跟随小编过来看看吧。

dedecms织梦tag keyword怎么调用相关文章?

DEDE官方的dede:likearticle是利用文章中输入的关键词或者自动分词形成的关键词来关联文章,但是有时候自动生成的关键词并不精确,造成关联不准,这里我们通过自定义一个类库文件来实现精准获取相关文章

可以单用tag来调用相关文章,也可用tag+keyword来调用相关文章(默认tag优先于keyword,可以自己排序)

在 \include\taglib\ 下添加一个liketags.lib.php 代码如下

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."%";$orwheres = '';if($flag != '') {$flags = explode(',', $flag);for($i=0; isset($flags[$i]); $i++) $orwheres .= " AND FIND_IN_SET('{$flags[$i]}', arc.flag)>0 ";}      $ids = array();    $tids = array();          if(!empty($refObj->Fields['tags'])) {        $keyword = $refObj->Fields['tags'];    }    else {        $keyword = ( !empty($refObj->Fields['keywords']) ? $refObj->Fields['keywords'] : '' );    }          $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) && !preg_match('#,#', $typeid) ) {        $typeid = GetSonIds($typeid);    }      if(!empty($refObj->Fields['tags']) && $eregtype != 'keyword' ){$tags = explode(',', addslashes($refObj->Fields['tags']));$getsql = " tag like '".join("' OR tag like '", $tags)."' ";$dsql->Execute('me', "Select * From `dede_tagindex` where $getsql ");while($arow = $dsql->GetArray('me')){$tids[] = $arow['id'];}$tid = join(',', $tids);if($tid!=''){061$dsql->Execute("me", "Select aid From `dede_taglist` where tid in($tid) And arcrank > -1 group by aid order by aid desc");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 = " And arc.typeid in($typeid) And arc.id<>$arcid ";}$idsStr = join(',', $ids);$query = "Select arc.*,tp.typedir,tp.typename,tp.corank,tp.isdefault,tp.defaultname,tp.namerule,tp.namerule2,tp.ispart,tp.moresite,tp.siteurl,tp.sitepathfrom `dede_archives` arc left join `dede_arctype` tp on arc.typeid=tp.idwhere arc.arcrank>-1 and arc.id in($idsStr) $typeid order by arc.id desc limit 0, $row";}else{$limitRow = $row - count($ids);$keyword = '';if(!empty($refObj->Fields['keywords'])){$keywords = explode(',' , trim($refObj->Fields['keywords']));$keyword = '';$n = 1;foreach($keywords as $k){if($n > 3)  break;  if(trim($k)=='') continue;else $k = addslashes($k);  $keyword .= ($keyword=='' ? " CONCAT(arc.keywords,' ',arc.title) like '%$k%' " : " OR CONCAT(arc.keywords,' ',arc.title) like '%$k%' ");$n++;}}$arcid = (!empty($refObj->Fields['id']) ? $refObj->Fields['aid'] : 0);if( empty($arcid) || $byabs==0 ){$orderquery = " order by arc.id desc ";}else{$orderquery = " order by ABS(arc.id - ".$arcid.") ";}if($keyword != ''){if(!empty($typeid)){$typeid = " And arc.typeid in($typeid) And arc.id<>$arcid ";}$query = "Select arc.*,tp.typedir,tp.typename,tp.corank,tp.isdefault,tp.defaultname,tp.namerule,tp.namerule2,tp.ispart,tp.moresite,tp.siteurl,tp.sitepathfrom `dede_archives` arc left join `dede_arctype` tp on arc.typeid=tp.idwhere arc.arcrank>-1 and ($keyword)  $typeid $orderquery limit 0, $row";}else{if(!empty($typeid)){$typeid = " arc.typeid in($typeid) And arc.id<>$arcid ";}$query = "Select arc.*,tp.typedir,tp.typename,tp.corank,tp.isdefault,tp.defaultname,tp.namerule,tp.namerule2,tp.ispart,tp.moresite,tp.siteurl,tp.sitepathfrom `dede_archives` arc left join `dede_arctype` tp on arc.typeid=tp.idwhere arc.arcrank>-1 and  $typeid $orderquery limit 0, $row";}}}      $innertext = trim( $ctag->GetInnerText() );    if($innertext=='') $innertext = GetSysTemplets('part_arclist.htm');    $dsql->SetQuery($query);    $dsql->Execute('al');    $artlist = '';    if($col > 1){        $artlist = "\r\n";    }    $dtp2 = new DedeTagParse();    $dtp2->SetNameSpace('field', '[', ']');    $dtp2->LoadString($innertext);    $GLOBALS['autoindex'] = 0;    $line = $row;    for($i=0; $i < $line; $i++)    {        if($col>1) $artlist .= "\r\n";        for($j=0; $j < $col; $j++)        {            if($col>1) $artlist .= "    \r\n";        }        //Loop Col        if($col>1) $i += $col - 1;        if($col>1) $artlist .= "    \r\n";    }    //loop line    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['namerule'],$row['moresite'],$row['siteurl'],$row['sitepath']); if($row['litpic'] == '-' || $row['litpic'] == '') { $row['litpic'] = $GLOBALS['cfg_cmspath'].'/images/defaultpic.gif'; } if(!preg_match("#^http:\/\/#i", $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'] = "".preg_replace("#[<]#","",$row['title'])."'>"; $row['imglink'] = "".$row['image'].""; $row['fulltitle'] = $row['title']; $row['title'] = cn_substr($row['title'], $titlelen); if($row['color']!='') $row['title'] = "".$row['title'].""; if(preg_match('#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->CTags as $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"; } //if hasRow else { $artlist .= ''; } if($col>1) $artlist .= "
\r\n"; $dsql->FreeResult("al"); return $artlist;}

前台模板调用

{dede:liketags row='3' mytypeid='6' eregtype='all|tag|keyword' titlelen='250' infolen='250'}
  • [field:title/]

    [field:title/]

    [field:description /]

  • {/dede:liketags}

    感谢各位的阅读!关于dedecms织梦tag keyword调用相关文章的方法就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到吧!

    文章 关键 关键词 方法 内容 更多 关联 不错 实用 特殊 精准 精确 代码 前台 字段 官方 库文件 有时候 模板 看吧 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 广州百单互联网科技有限公司 科技赋能下的互联网金融 北京互联网科技 易互联网科技有限公司 狮子座互联网科技 互联网科技宣传片 天扬科技互联网广告 科技与互联网哪个更好 佳云科技和互联网广告 注册互联网科技公司经营范围大全 威龙国际互联网科技公司 爱医互联网络科技 工业互联网山东科技大学 浙南科技城互联网大厦招聘 半导体行业属于互联网高科技类吗 云鲸互联网络科技有限公司 广西科技产业互联网是什么 唯美互联网科技 长沙渺峰互联网科技有限公司 好易买互联网科技 科技互联网企业 朗新科技与工业互联网 伴你行互联网科技有限公司 科技互联网创业计划书 山东吉时兔互联网科技有限公司 北京华百购互联网科技有限公司 互联网时代科技改变生活 广州恒生互联网科技有限 黑科技闪耀互联网之光 互联网时代高科技布局
    0