首页 > CMS > 织梦DEDE > 正文

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

2024-07-12 08:49:57
字体:
来源:转载
供稿:网友
这篇文章主要为大家详细介绍了织梦模板相关文章标签匹配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.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";}

注意以上绿色内容就是一部分匹配条件 ,

$keyword .= ($keyword=='' ? " CONCAT(arc.keywords,' ',arc.title) LIKE '%$k%' " : " OR CONCAT(arc.keywords,' ',arc.title) LIKE '%$k%' ");

可以看出dedecms只CONCAT了keywords和title,没有做tag的处理  。

以上就是织梦模板相关文章标签匹配tag、关键词、标题及调用全站相关文章方法的全部内容,希望对大家的学习和解决疑问有所帮助,也希望大家多多支持武林网。
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表