VIP福利
主页 > 建站问题 > 故障问题 > DedeCms根据文档标题自动获取tag(标签)

DedeCms根据文档标题自动获取tag(标签)

在论坛里也看到有类似的帖子,但是测试了好多次都没有成功,于是自己进行了一些修改,测试成功,现在拿来和大家分享一下!这里自动获取的tag其实就是利用自动获取关键词的原理获取的,所以这样获得的tag和关键词是一样的!! 1、只根据文章标题获取关键词的修改方法: 因为文章内容繁多, dede 默认的获取关键词是根据标题和内容获取的,会获取很多无用的关键词,而只根据标题获取则会相对大大减少无用关键词的数量,修改方法如下: 打开dede/ […]



在论坛里也看到有类似的帖子,但是测试了好多次都没有成功,于是自己进行了一些修改,测试成功,现在拿来和大家分享一下!这里自动获取的tag其实就是利用自动获取关键词的原理获取的,所以这样获得的tag和关键词是一样的!!
 
  1、只根据文章标题获取关键词的修改方法:
 
  因为文章内容繁多,dede默认的获取关键词是根据标题和内容获取的,会获取很多无用的关键词,而只根据标题获取则会相对大大减少无用关键词的数量,修改方法如下:
 
  打开dede/action/article_add_action.php文件,分别查找如下代码:
 
  //自动获取文章中的关键字
 
  和
 
  //自动分页
 
  将其之间的代码替换为如下代码:
 
  
01 //----------------------------------
02  
03   if($autokey==1){
04  
05   require_once(DEDEADMIN."/../include/pub_splitword_[url]www.php[/url]");
06  
07   $keywords = "";
08  
09   $sp = new SplitWord();
10  
11   $titleindexs = explode(" ",trim($sp->GetIndexText($sp->SplitRMM($title))));
12  
13   // $allindexs = explode(" ",trim($sp->GetIndexText($sp->SplitRMM(Html2Text($body)),200)));
14  
15   // if(is_array($allindexs) && is_array($titleindexs)){
16  
17   foreach($titleindexs as $k){
18  
19   if(strlen($keywords)>=50) break;
20  
21   else $keywords .= $k." ";
22  
23   }
24  
25   // foreach($allindexs as $k){
26  
27   // if(strlen($keywords)>=50) break;
28  
29   // else if(!in_array($k,$titleindexs)) $keywords .= $k." ";
30  
31   // }
32  
33   // }
34  
35   $sp->Clear();
36  
37   unset($sp);
38  
39   $keywords = preg_replace("/@p@|@e@/","",$keywords); //将前面的@换为#
40  
41   $keywords = addslashes($keywords);
42  
43   }
 
  这样发表文章时选中自动获取关键词就是只根据文章标题获取关键词了!!

共有 条评论