最新公告
  • 欢迎您光临云梦下载网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入我们
  • dedecms相关文章标签匹配tag、关键词、标题及调用全站相关文章方法

    文章介绍
     
    我和dedecms
    接触dedecms是从2009开始的,以前一直用风讯和科讯(ASP的)这两款,后来从成都到东莞进一公司打工,该公司就是使用的dedecms建站,我也跟着学了,怎么说呢刚开始觉得很强大,到后面用着越来越糟糕,很多地方做的不完善,另外一个让大家很火的地方就是,在dede的论坛提问题基本上官方是不会给你解答的。就拿最近我新改版的AB模板网(www.adminbuy.cn)来说,我想调用相关文章,以tag优先调用,如果tag匹配不到或者匹配条数不够再以关键词匹配。
     
    dedecms的相关文章标签(likearticle.lib.php)
    新版的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的处理,这里提供一个方法原创作者不详。

     
    1. 本站所有资源来源于用户上传和网络,因此不包含技术服务请大家谅解!如有侵权请邮件联系客服!616105616@qq.com
    2. 本站不保证所提供下载的资源的准确性、安全性和完整性,资源仅供下载学习之用!如有链接无法下载、失效或广告,请联系客服处理,有奖励!
    3. 您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容资源!如用于商业或者非法用途,与本站无关,一切后果请用户自负!
    4. 如果您也有好的资源或教程,您可以投稿发布,成功分享后有站币奖励和额外收入!

    云梦下载网 » dedecms相关文章标签匹配tag、关键词、标题及调用全站相关文章方法
    • 3会员总数(位)
    • 2836资源总数(个)
    • 65本周发布(个)
    • 12 今日发布(个)
    • 208稳定运行(天)

    提供最优质的资源集合

    立即查看 了解详情