织梦dedecms让文章页关键词自动SEO内链

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

  但是你总发觉得它不怎么好用,总会出这样哪样的问题。但是我们只需要修改一部分代码就可以让织梦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;

  }

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

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

立即查看 了解详情