您好,欢迎来到菜鸟吧源码网-本站资源仅供学习与参考,禁止用于商业或违法行为!
  • 首 页
  • 下载APP
  • 公告:菜鸟吧APP于2024.9.15正式上线,请首页右上角进入下载,本站资源均来源于互联网及会员投稿发布,所有资源仅供学习参考研究使用,请勿商用或其它非法用途,商用请购买正版,否则产生一切后果由用户自行承担!谢谢!

     

    当前位置:主页 > 站长学堂 > dede教程 >
    dede文档关键词维护“频率”的设置
    时间:2020-02-21 12:31 作者:菜鸟哥 浏览:收藏 挑错 打印

    dede文档关键词维护“频率”,这个频率只是表示关键词的热度,同动易系统的关键词权重等同。

    系统 》系统基本参数 》其他选项的最后一行。文档内容同一关键词替换次数(0为全部替换):1(1表示只链接第一个出现的目标关键词)。如图:
    dede文档关键词维护“频率”的设置

     说到这里,可能又会出现一个问题。比如我在后台设置了两个锚文本链接“SEO方案”、“SEO”,但文章第一次出现“SEO方案”这个词的时候,本来设想是应该链接到“SEO方案”所对应的页面,但是织梦默认设置为链接到“SEO”所对应的页面。那么,这种情况应该如何处理呢?

      解决方法(先备份)

      第一步:打开目录include中的arc.archivew.class.php(arc.archives.class.php)

      找到function ReplaceKeyword($kw,&$body)代码,从这里然后一直到最下面的“?>”之前。替换这段代码:


    function ReplaceKeyword($kw,&$body)  
    {  
      global $cfg_cmspath;  
      $maxkey = 5;  
      $kws = explode(",",trim($kw)); //以分好为间隔符  
      $i=0;  
      $karr = $kaarr = $GLOBALS['replaced'] = array();  

      //暂时屏蔽超链接  
      $body = preg_replace("/()(.*)(<)(/a>)/isU", '\1-]-\4-[-\6', $body);  

      global $dsql;  
      $query="SELECT * FROM keywords WHERE rpurl<>'' and sta=1 ORDER BY length(keyword)desc";  
      $dsql->SetQuery($query);  
      $dsql->Execute();  
      while($row = $dsql->GetArray())  
      {  
        $key = trim($row['keyword']);  
        $key_url=trim($row['rpurl']);  
        $karr[] = $key;  
        $kaarr[] = "$key";  
      }  
      foreach ($karr as $key => $word)  
      {  

       $body = preg_replace("/(^|>)([^<]+)(?=<|$)/sUe", "_highlight('\2', $karr[$key], $kaarr[$key], '\1')", $body);  
    //echo $body."
    ";  

    //恢复超链接  
       $body = preg_replace("/()/isU", '\1>\3<\4', $body);  
    //暂时屏蔽超链接  
       $body = preg_replace("/()(.*)(<)(/a>)/isU", '\1-]-\4-[-\6', $body);  

      }  

      //恢复超链接  
      $body = preg_replace("/()/isU", '\1>\3<\4', $body);  
      return $body;  
    }  

    }//End Archives  

    //高亮专用, 替换多次是可能不能达到最多次  
    function _highlight($string, $words, $result, $pre)  
    {  
    global $cfg_replace_num;  
    $string = str_replace('"', '"', $string);  

    if($GLOBALS['replaced'][$words] == 1)  
    {  
      return $pre.$string;  
    }  

    if($cfg_replace_num > 0)  
    {  
      $string = preg_replace("/".preg_quote($words)."/", $result, $string, $cfg_replace_num);  
      if(strpos($string, $words) !== false)  
      {  
       $GLOBALS['replaced'][$words] = 1;  
       //echo $words;  
      }  

    }  
    else  
    {  
       $string = str_replace($words, $result, $string);  
    }  

    return $pre.$string;  
    }  

      进入后台生成,至此大功告成。

    备注:

    1 文章提到的arc.archivew.class.php,织梦在升级后变成了 arc.archives.class.php

    2 修改过程中,文档末尾“?>”千万要保留

    3 这篇文章写得很好,不过代码有问题

    4 这篇文章的代码是正确的

    郑重声明:
    本站所有内容均由互联网收集整理、网友上传,并且以计算机技术研究交流为目的,仅供大家参考、学习,不存在任何商业目的与商业用途。 若您需要商业运营或用于其他商业活动,请您购买正版授权并合法使用。
    我们不承担任何技术及版权问题,且不对任何资源负法律责任。
    如无法下载,联系站长索要。
    如有侵犯您的版权,请给我们来信:cainiaovip8@qq.com,我们尽快处理。

    织梦中TAG标签字数长度限制解决方法织梦中TAG标签字数长度限制解决方法
    织梦后台突然打不开或打开后空白的解决方法织梦后台突然打不开或打开后空白的解决
    织梦系统解决后台“DEDECMS安全提示”的方法织梦系统解决后台“DEDECMS安全提示”