织梦相关文章标签匹配tag、关键词、标题及调用全站相关文章方法

  新版的织梦dedecms5.7相关文章标签有两个问题

  1、相关文章文章调只调用当前栏目的,其他栏目的调用不到

  2、只能匹配其他文章的标题(title),和关键词(keywords),没有去匹配其他文章tag

  修改dedecms(5.7)likearticle.lib.php相关文章标签调用全站相关文章

  打开likearticle.lib.php(请事先备份),

  查找:$query = ”

  在其上方添加:$typeid = ‘ AND arc.id<>$arcid ‘; 注意有两处,AND arc.id<>$arcid这个的意思就是限制调用出来的相关文章不包含本文章,记的dedecms7.0之前没有做 这个限制-_-,这样就取消了相关文章匹配栏目的限制了。

  dedecms相关文章调用tag、关键词(keywords)、标题(title)相同的文章

  dedecms官方的相关文章标签并没有匹配tag相同的文章,他只是获取当前文章的tag和关键词(keywords)去匹配其他文章的标题(title)、关键词(keywords) 请看dede的源码片断

  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.sitepath

  FROM `dede_archives` arc LEFT JOIN `dede_arctype` tp ON arc.typeid=tp.id

  where 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.sitepath

  FROM `dede_archives` arc LEFT JOIN `dede_arctype` tp ON arc.typeid=tp.id

  WHERE arc.arcrank>-1 AND $typeid $orderquery limit 0, $row”;

  }

  注意以上绿色内容就是一部分匹配条件 ,$keyword .= ($keyword==” ? ” CONCAT(arc.keywords,’ ‘,arc.title) LIKE ‘%$k%’ ” : ” OR CONCAT(arc.keywords,’ ‘,arc.title) LIKE ‘%$k%’ “);可以看出dedecms只CONCAT了keywords和title,没有做tag的处理 。

☉免责声明:本站所有模板均来自用户分享和网络收集,仅供学习与参考,请勿用于商业用途,如果损害了您的权利,请联系网站客服,我们核实后会立即删除。
☉本站提供的源码、模板、软件工具等其他资源,都不包含技术服务,请大家谅解!
pbootcms模板网 » 织梦相关文章标签匹配tag、关键词、标题及调用全站相关文章方法

Pbootcms模板网 提供优质的模板集合

立即查看 了解详情