源码

开启自动内链:1.后台-采集-文档关键词维护添加关键词及链接2.后台-系统基本参数-核心设置关键字替换选是3.后台-系统基本参数-其他选项文档内容同一关键词替换次数(0为全部替换):设置1修复内链重复代码错误,如dede和dedecms,容易出现a链接重叠导致代码错误。参考官方帮助:http://help.dedecms.com/install-use/apply/2012/0828/2319.html5.7版本(版本信息:V5.7SP2正式版(2018-01-09))1.找到include/arc.archives.class.php这个文件2.大概在2500行左右,有这样一行代码$string=str_replace('\"','"',$string);在这行代码下方加入以下代码uasort($words,create_function('$a,$b','returnstrlen($a)>strlen($b);'));意思是先替换比较短的词,然后再匹配替换长的词。这样就不会出现代码重叠的错误了。具体情况由于dede更新会经常变化,而且dede在处理这个问题又夹杂着php版本判断问题,导致网上很多方法都是无效的,如果以上处理后还是错误建议尝试在arc.archives.class.php搜索5.5.0,替换为7.5.0,如果问题还是存在建议搜索网络中“dede自动内链,文档关键词维护重叠错误”等关键词查找php版本解决方案。或见http://www.hack001.com/post/454最后备注一个文档关键词维护批量删除的sql语句:Deletefromdede_keywordsWHEREaid>=1andaid<=1000;意思是删除掉文档关键词中id大于1小于1000的所有文档关键词,数值可以根据自己的需要来修改全部清空:Deletefromdede_keywords如果要删除搜索词,也是上面语句,表名为:dede_search_keywords

未分类

关键词内链开启步骤后台-系统-核心设置-关键字替换【是】后台-系统-其他选项-关键词替换次数【1】关键词长短优先级问题比如有“长词”、“我是大长词”、“我是小长词”,同时在一篇文章中出现,程序会优先使用短的词。解决关键词长短优先级问题的方法打开/include/arc.archives.class.php找到$query="SELECT*FROM#@__keywordsWHERErpurl<>''ORDERBYrankDESC";复制1改成$query="SELECTchar_length(keyword)ASnum,aid,keyword,rpurl,rankFROM#@__keywordsWHERErpurl<>''ORDERBYnumDESC";复制1继续找到"#".preg_quote($word)."#"复制1改成"#(?<!>)(?!<)".preg_quote($word)."#"复制1完成最终效果PHP版本高于5.5无法使用关键词內链的解决方法打开/include/arc.archives.class.php找到$body=@preg_replace_callback("#(^|>)([^<]+)(?=<|$)#sU","_highlight('\\2',\$karr,\$kaarr,'\\1')",$body);复制1改成global$cfg_replace_num;if($cfg_replace_num>0){$query="SELECTchar_length(keyword)ASnum,aid,keyword,rpurl,rankFROM#@__keywordsWHERErpurl<>''ORDERBYnumDESC";$this->dsql->SetQuery($query);$this->dsql->Execute();while($row=$this->dsql->GetArray()){$key=trim($row['keyword']);$key_url=trim($row['rpurl']);$body=str_replace_limit($key,"<ahref='$key_url'target='_blank'><u>$key</u></a>",$body,$cfg_replace_num);}}else{$query="SELECTchar_length(keyword)ASnum,aid,keyword,rpurl,rankFROM#@__keywordsWHERErpurl<>''ORDERBYnumDESC";$this->dsql->SetQuery($query);$this->dsql->Execute();while($row=$this->dsql->GetArray()){$key=trim($row['keyword']);$key_url=trim($row['rpurl']);$body=str_replace($key,"<ahref='$key_url'target='_blank'><u>$key</u></a>",$body);}}复制12345678910111213141516171819202122232425继续找到//高亮专用复制1在它上面加入//指定替换次数功能functionstr_replace_limit($search,$replace,$subject,$limit){if(is_array($search)){foreach($searchas$k=>$v){$search[$k]='#(?<!>)(?!<)'.preg_quote($search[$k],'#').'#';}}else{$search='#(?<!>)(?!<)'.preg_quote($search,'#').'#';}returnpreg_replace($search,$replace,$subject,$limit);}复制12345678910111213141516完成转自:https://www.dedehtml.com/notes/keywords-seo.html王健简化版:后台-系统-核心设置-关键字替换【是】后台-系统-其他选项-关键词替换次数【1】打开/include/arc.archives.class.php找到$query="SELECT*FROM#@__keywordsWHERErpurl<>''ORDERBYrankDESC";改成$query="SELECTchar_length(keyword)ASnum,aid,keyword,rpurl,rankFROM#@__keywordsWHERErpurl<>''ORDERBYnumDESC";继续找到"#".preg_quote($word)."#"改成"#(?<!>)(?!<)".preg_quote($word)."#"完成PHP版本高于5.5无法使用关键词內链的解决方法打开/include/arc.archives.class.php找到$body=@preg_replace_callback("#(^|>)([^<]+)(?=<|$)#sU","_highlight('\\2',\$karr,\$kaarr,'\\1')",$body);改成global$cfg_replace_num;if($cfg_replace_num>0){$query="SELECTchar_length(keyword)ASnum,aid,keyword,rpurl,rankFROM#@__keywordsWHERErpurl<>''ORDERBYnumDESC";$this->dsql->SetQuery($query);$this->dsql->Execute();while($row=$this->dsql->GetArray()){$key=trim($row['keyword']);$key_url=trim($row['rpurl']);$body=str_replace_limit($key,"<ahref='$key_url'target='_blank'><u>$key</u></a>",$body,$cfg_replace_num);}}else{$query="SELECTchar_length(keyword)ASnum,aid,keyword,rpurl,rankFROM#@__keywordsWHERErpurl<>''ORDERBYnumDESC";$this->dsql->SetQuery($query);$this->dsql->Execute();while($row=$this->dsql->GetArray()){$key=trim($row['keyword']);$key_url=trim($row['rpurl']);$body=str_replace($key,"<ahref='$key_url'target='_blank'><u>$key</u></a>",$body);}}继续找到//高亮专用在它上面加入//指定替换次数功能functionstr_replace_limit($search,$replace,$subject,$limit){if(is_array($search)){foreach($searchas$k=>$v){$search[$k]='#(?<!>)(?!<)'.preg_quote($search[$k],'#').'#';}}else{$search='#(?<!>)(?!<)'.preg_quote($search,'#').'#';}returnpreg_replace($search,$replace,$subject,$limit);}完成

2019-5-4 1876 0
2018-6-17 2199 0