织梦dedecms让文章页自动SEO内链不需要插件

  {dede:channel type=’top’ row=’10’}

  

  • 扯远了,说明天的重点“关键字内链”,其实织梦DEDECMS之前考虑过这个问题的,但是有一些BUG。 织梦DEDECMS后台里面 核心->批量维护->文档关键字维护 其实这个当时设计出来的时候就是用来做内链的。

      织梦DEDECMS让文章页自动SEO内链 不需要插件

      但是你总发觉得它不怎么好用,总会出这样哪样的问题。但是我们只需要修改一部分代码就可以让织梦DEDECMS自动替换关键字了,并且只是文档中只要出现了的都完全替换。

      打开 /include/arc.archives.class.php 文件,在修改最后的两个方法,按下面的方法进行修改。

      主要修改了ReplaceKeyword里面查询关键字的时候排序的算法,然后注释了一个判断

      /**

      * 高亮问题修正, 排除alt title 直接的字符替换

      *

      * @param string $kw

      * @param string $body

      * @return string

      */

      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);

      /*

      foreach($kws as $k)

      {

      $k = trim($k);

      if($k!=””)

      {

      if($i > $maxkey)

      {

      break;

      }

      $myrow = $this->dsql->GetOne(“SELECT * FROM idea_keywords WHERE keyword=’$k’ AND rpurl<>” “);

      if(is_array($myrow))

      {

      $karr[] = $k;

      $GLOBALS[‘replaced’][$k] = 0;

      $kaarr[] = “$k“;

      }

      $i++;

      }

      }

      */

      $query = “SELECT * FROM idea_keywords WHERE rpurl<>” ORDER BY keyword DESC”;

      $this->dsql->SetQuery($query);

      $this->dsql->Execute();

      while($row = $this->dsql->GetArray())

      {

      $key = trim($row[‘keyword’]);

      $key_url=trim($row[‘rpurl’]);

      $karr[] = $key;

      $kaarr[] = “$key“;

      }

      // 这里可能会有错误

      $body = @preg_replace(“#(^|>)([^<]+)(?=<|$)#sUe", "_highlight('\2', $karr, $kaarr, '\1')", $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($cfg_replace_num > 0)

      // {

      // foreach ($words as $key => $word)

      // {

      // if($GLOBALS[‘replaced’][$word] == 1)

      // {

      // continue;

      // }

      // $string = preg_replace(“#”.preg_quote($word).”#”, $result[$key], $string, $cfg_replace_num);

      // if(strpos($string, $word) !== FALSE)

      // {

      // $GLOBALS[‘replaced’][$word] = 1;

      // }

      // }

      // }

      // else

      // {

      $string = str_replace($words, $result, $string);

      // }

      return $pre.$string;

      }

  •   {/dede:channel}

    ☉免责声明:本站所有模板均来自用户分享和网络收集,仅供学习与参考,请勿用于商业用途,如果损害了您的权利,请联系网站客服,我们核实后会立即删除。
    ☉本站提供的源码、模板、软件工具等其他资源,都不包含技术服务,请大家谅解!
    pbootcms模板网 » 织梦dedecms让文章页自动SEO内链不需要插件

    Pbootcms模板网 提供优质的模板集合

    立即查看 了解详情