一个分享个人学习、开发经验的Blog,http://www.joyphper.net

kingcms PHP 按tag提取相关文章的方法及提取方法的改进

posted @ 2010-09-10 00:22 | 阅读:4056 | 评论:1 | 分类: PHP

 正常情况下,kingcms按tag提取相关文章的方法代码如下:

            {king:portal.article type='tag' where='kid!=(king:kid/)' number='8'}
               <a href="{king:path/}">{king:title size='30'/}</a></dd>
            {/king:portal.article}

但是如果你按下面的方法以去写的话会发现你提取文章的概率会很低的,这个因为kingcms在默认的情况下它是拿文章里表里整个tag字段去like查询,下面是我个人做了一个小小的改进查询方法,就是马tag字段分成一个一个小的tag去查询的方法,这样就提高了查询的关联程序。

修改的部分位于/portal/core.class.php文件中的3480行,将 case 'tag'里面的内容换成如下的内容就OK了

  case 'tag':
   $tagname=kc_val($ass,'tag');
   /*
   修改日期2010.09.02
   修改以前查询tag的时候没有把tag分割开,拿了整个tag标签值去查询关联
   修改后是把所有的tag分割成一个个小的tag进行查询,提高了关联度   
   */
   $tags=explode(',',$king->db->escape($tagname));
   if(count($tags)>1){
    $where=" and ( ";
    $i=1;
    foreach($tags as $_v){
     if(empty($_v))continue;
     if($i>1){
      $where.=" or ktag like '%".$_v."%'";
     }else{
      $where.=" ktag like '%".$_v."%'";
     }
     $i++;
    }
    $where.=")";
   }else{
    $where=" and ktag like '%".$king->db->escape($tagname)."%'";
   }
  break;

TAG: tag改进 , php , kingcms

共有1条评论 发表评论>>

Eric Chen 发表于:2015-01-11 00:28
学习了
点击换一张验证码