网站地图|TAG标签|RSS订阅设为首页】【加入收藏
网站建设咨询电话:15820841577 (文先生)  
点击在线交流

织梦CMS

您在的位置是:百通首页 > 建站知识 > 织梦CMS >

织梦关键词自动添加超链接优化

分享到:
分享到:
发布时间:2011-10-11 10:00  来源:百通网络科技  作者:网站优化

DEDECMS算是使用率非常高的一款开源CMS产品,现在说下其中内连优化的一些注意事项。

一。dedecms 文档关键词维护之交叉(重叠)替换问题问题详述:

举例,如果一个台历站,我希望文章中对关键词百通加的链接是
www.baitong.cc/ 对东莞网站优化加的关键词是 http://www.baitong.cc/marketing/
这时,问题出来了,当文章中第一句话出现  “杭州台历”时,他很可能会把这个链接加到
http://www.baitong.cc/marketing/ 上,而关键词杭州台历却加不上了。

二。dedecms 文档关键词维护之关键词出现多次,只给出现的第一个加链接的
举例:当文章中出现了一百次台历时,按官方的原理,他会给一百个台历都加上链接的。这如何是好?

解决方法(先备份)
第一步:打开目录include中的arc.archivew.class.php
找到function ReplaceKeyword($kw,&$body)代码,在最下面。然后一直到最下面。替换以下的代码 

  1. function ReplaceKeyword($kw,&$body)
  2. {
  3.    global $cfg_cmspath;
  4.    $maxkey = 5;
  5.    $kws = explode(",",trim($kw)); //以分好为间隔符
  6.    $i=0;
  7.    $karr = $kaarr = $GLOBALS['replaced'] = array();
  8.  
  9.    //暂时屏蔽超链接
  10.    $body = preg_replace("/(<a(.*))(>)(.*)(<)(\/a>)/isU", '\\1-]-\\4-[-\\6', $body);
  11.  
  12.    global $dsql;
  13.    $query="SELECT * FROM dede_keywords WHERE rpurl<>'' and sta=1 ORDER BY length(keyword)desc";
  14.    $dsql->SetQuery($query);
  15.    $dsql->Execute();
  16.    while($row = $dsql->GetArray())
  17.    {
  18.      $key = trim($row['keyword']);
  19.      $key_url=trim($row['rpurl']);
  20.      $karr[] = $key;
  21.      $kaarr[] = "<u><a href='$key_url' target='_blank'>$key</a></u>";
  22.    }
  23.    foreach ($karr as $key => $word)
  24.    {
  25.  
  26.     $body = preg_replace("/(^|>)([^<]+)(?=<|$)/sUe", "_highlight('\\2', \$karr[$key], \$kaarr[$key], '\\1')", $body);
  27. //echo $body."<br/>";
  28.  
  29. //恢复超链接
  30.     $body = preg_replace("/(<a(.*))-\]-(.*)-\[-(\/a>)/isU", '\\1>\\3<\\4', $body);
  31. //暂时屏蔽超链接
  32.     $body = preg_replace("/(<a(.*))(>)(.*)(<)(\/a>)/isU", '\\1-]-\\4-[-\\6', $body);
  33.  
  34.    }
  35.  
  36.    //恢复超链接
  37.    $body = preg_replace("/(<a(.*))-\]-(.*)-\[-(\/a>)/isU", '\\1>\\3<\\4', $body);
  38.    return $body;
  39. }
  40.  
  41. }//End Archives
  42.  
  43. //高亮专用, 替换多次是可能不能达到最多次
  44. function _highlight($string, $words, $result, $pre)
  45. {
  46. global $cfg_replace_num;
  47. $string = str_replace('\"', '"', $string);
  48.  
  49. if($GLOBALS['replaced'][$words] == 1)
  50. {
  51.    return $pre.$string;
  52. }
  53.  
  54. if($cfg_replace_num > 0)
  55. {
  56.    $string = preg_replace("/".preg_quote($words)."/", $result, $string, $cfg_replace_num);
  57.    if(strpos($string, $words) !== false)
  58.    {
  59.     $GLOBALS['replaced'][$words] = 1;
  60.     //echo $words;
  61.    }
  62.  
  63. }
  64. else
  65. {
  66.     $string = str_replace($words, $result, $string);
  67. }
  68.  
  69. return $pre.$string;
  70. }
复制代码

第二步:进入DEDE后台
系统-系统基本参数-其他选项的最后一行。
文档内容同一关键词替换次数(0为全部替换):
改为1
如下图


第三步:去添加你的关键词吧。
第四步:生成