加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > CMS系统 > Dedecms > 正文

dede文档关键词维护“频率”的设置

发布时间:2020-12-14 05:11:49 所属栏目:Dedecms 来源:网络整理
导读:dede文档关键词维护“频率”,这个频率只是表示关键词的热度,同动易系统的关键词权重等同。 系统 》系统基本参数 》其他选项的最后一行。文档内容同一关键词替换次数(0为全部替换):1(1表示只链接第一个出现的目标关键词)。如图: 说到这里,可能又会出现一

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

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

 说到这里,可能又会出现一个问题。比如我在后台设置了两个锚文本链接“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",$body);???
???
?? }???
???
?? //恢复超链接???
?? $body = preg_replace("/()/isU",$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)."/",$string,$cfg_replace_num);???
?? if(strpos($string,$words) !== false)???
?? {???
??? $GLOBALS['replaced'][$words] = 1;???
??? //echo $words;???
?? }???
???
}???
else???
{???
??? $string = str_replace($words,$string);???
}???
???
return $pre.$string;???
}???

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

备注:

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

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

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

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读