织梦DEDECMS关键词怎么自动添加超链接优化解决方法(先备份)
第一步:打开目录include中的arc.archivew.class.php这个文件中有两个函数需要修改ReplaceKeyword和_highlight
找到functionReplaceKeyword($kw,&$body)代码,在最下面。然后一直到最下面。替换以下的代码
functionReplaceKeyword($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*FROMdede_keywordsWHERErpurl<>''andsta=1ORDERBYlength(keyword)desc";
$dsql->SetQuery($query);
$dsql->Execute();
while($row=$dsql->GetArray())
{
$key=trim($row['keyword']);
$key_url=trim($row['rpurl']);
$karr[]=$key;
$kaarr[]="<u><ahref='$key_url'target='_blank'>$key</a></u>";
}
foreach($karras$key=>$word)
{
$body=preg_replace("/(^|>)([^<]+)(?=<|$)/sUe","_highlight('\\2',\$karr[$key],\$kaarr[$key],'\\1')",$body);
//echo$body."<br/>";
//恢复超链接
$body=preg_replace("/(<a(.*))-\]-(.*)-\[-(\/a>)/isU",'\\1>\\3<\\4',$body);
//暂时屏蔽超链接
$body=preg_replace("/(<a(.*))(>)(.*)(<)(\/a>)/isU",'\\1-]-\\4-[-\\6',$body);
}
//恢复超链接
$body=preg_replace("/(<a(.*))-\]-(.*)-\[-(\/a>)/isU",'\\1>\\3<\\4',$body);
return$body;
}
}//EndArchives
//高亮专用,替换多次是可能不能达到最多次
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;
}
复制代码
第二步:进入DEDE后台
系统-系统基本参数-其他选项的最后一行。
文档内容同一关键词替换次数(0为全部替换):
改为1
第三步:去添加你的关键词吧。
第四步:生成