织梦DedeCMS文章页自动添加关键词内链锚文本

2012-10-10 16:15:29长沙做网站严微

网站关键词内链,是做好网站内部优化的一个重要环节,织梦(DedeCMS)官方默认规则是:

1.打开关键词自动链接

设置步骤:进入后台 系统->基本参数->性能选项->使用关键词关连文章选“是”

2.添加关键词和关键词的链接地址

设置步骤:进入后台 核心->批量维护->文档关键词维护

3.文章内容出现该关键词

4.文章的关键词出现这个词

这个是在发布文章的时候填写的第4条规则使得关键词内链不尽完美,所以得修改文件取消掉第4条规则,达到我们想要的效果,即文章内出现该关键词即链向指定的URL,方法如下:

一、开打include/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(.*))(>)(.*)(<)(\/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 dede_keywords where keyword='$k' And rpurl<>'' ");
    if(is_array($myrow))
    {
     $karr[] = $k;
     $GLOBALS['replaced'][$k] = 0;
     $kaarr[] = “<a href=’{$myrow['rpurl']}’><u>$k</u></a>”;
    }
    $i++;
   }
  }
  $body = preg_replace(“/(^|>)([^<]+)(?=<|$)/sUe”, “_highlight(‘\\2′, \$karr, \$kaarr, ‘\\1′)”, $body);

  //恢复超链接
  $body = preg_replace(“/(<a(.*))-\]-(.*)-\[-(\/a>)/isU", '\\1>\\3<\\4', $body);
  return $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(.*))(>)(.*)(<)(\/a>)/isU”, ‘\\1-]-\\4-[-\\6', $body);
  global $dsql;
        $query="SELECT * FROM dede_keywords WHERE rpurl<>'' ORDER BY rank DESC";
        $dsql->SetQuery($query);
        $dsql->Execute();
        while($row = $dsql->GetArray())
    {
     $key = trim($row['keyword']);
     $key_url=trim($row['rpurl']);
     $karr[] = $key;
     $kaarr[] = “<a href=’$key_url’ target=’_blank’>$key</a>”;
    }
  $body = preg_replace(“/(^|>)([^<]+)(?=<|$)/sUe”, “_highlight(‘\\2′, \$karr, \$kaarr, ‘\\1′)”, $body);

  //恢复超链接
  $body = preg_replace(“/(<a(.*))-\]-(.*)-\[-(\/a>)/isU”, ‘\\1>\\3<\\4′, $body);
  return $body;
 }

(以上代码拷贝后,自己注意下单引号和双引号,可能需要修改,原则是单引号里可以套双引号,双引号里可以套单引号)

五、OK,已经修改完成了。直接复制上面代码,文章内同样的关键词只会出现一个链接。

六、一键更新网站->更新所有

上一篇:

织梦DedeCms文章列表隔行换色代码

下一篇:

Dedecms文章内容自动添加关键字链接的 返 回

Copyright © 2009-2019 Ywcms.Com All Right Reserved.  湘ICP备16006489号-2