除了权限问题,大部分原因是dede的一个bug,就是你直接定义模板名后dede不知道,还是去找默认的模板名,导致提示“dede模板文件不存在,无法解析文档”这种情况最简单的方式就是,找到提示语的php文件,文章是/include/arc.archives.class.php栏目是/include/arc.listview.class.php搜索:模板文件不存在,无法解析文档栏目页修改成:echo$this->Fields['typename']."[ID:{$this->TypeID}]".$GLOBALS['cfg_basedir'].$GLOBALS['cfg_templets_dir']."/".$this->TypeLink->TypeInfos['templist']."模板文件不存在,无法解析文档!";文章页修改成:echo$GLOBALS['cfg_basedir'].$GLOBALS['cfg_templets_dir']."/".$this->TypeLink->TypeInfos["temparticle"]."模板文件不存在,无法解析文档!";如果修改过后,提示的栏目不在你的后台栏目里的话,你需要记下栏目ID,到后台-系统-SQL命令行工具-运行SQL命令行DELETEFROM`#@__arctype`WHEREid='填你记下的栏目ID'转自:https://www.dedehtml.com/notes/get-templeta-file.html
1.新增变量百度站长平台token:cfg_badutoken网站域名:cfg_baiduhost2.打开:/dede/article_add.php搜索:$artUrl=MakeArt($arcID,true,true,$isremote);if($artUrl==''){$artUrl=$cfg_phpurl."/view.php?aid=$arcID";}在下面加入:else{$urls[]='http://'.$cfg_baiduhost.'/'.$artUrl;$api='http://data.zz.baidu.com/urls?site='.$cfg_baiduhost.'&token='.$cfg_badutoken;$ch=curl_init();$options=array(CURLOPT_URL=>$api,CURLOPT_POST=>true,CURLOPT_RETURNTRANSFER=>true,CURLOPT_POSTFIELDS=>implode("\n",$urls),CURLOPT_HTTPHEADER=>array('Content-Type:text/plain'),);curl_setopt_array($ch,$options);$result=curl_exec($ch);}搜索:<ahref='catalog_do.php?cid=$typeid&dopost=listArchives'><u>已发布文章管理</u></a>在下面加入:<u>百度提交返回".$result."</u> 打开:/dede/article_edit.php搜索:$artUrl=MakeArt($arcID,true,true,$isremote);if($artUrl==''){$artUrl=$cfg_phpurl."/view.php?aid=$arcID";}在下面加入:else{$urls[]='http://'.$cfg_baiduhost.'/'.$artUrl;$api='http://data.zz.baidu.com/update?site='.$cfg_baiduhost.'&token='.$cfg_badutoken;$ch=curl_init();$options=array(CURLOPT_URL=>$api,CURLOPT_POST=>true,CURLOPT_RETURNTRANSFER=>true,CURLOPT_POSTFIELDS=>implode("\n",$urls),CURLOPT_HTTPHEADER=>array('Content-Type:text/plain'),);curl_setopt_array($ch,$options);$result=curl_exec($ch);}搜索:<ahref='catalog_do.php?cid=$typeid&dopost=listArchives'><u>管理文章</u></a>在下面加入:<u>百度提交返回".$result."</u> 完成,最后附加个百度自动推送代码,只需要把以下js做到每个页面的html中即可,自动推送和主动推送可以同时使用,进行互补。<script>(function(){varbp=document.createElement('script');varcurProtocol=window.location.protocol.split(':')[0];if(curProtocol==='https'){bp.src='https://zz.bdstatic.com/linksubmit/push.js';}else{bp.src='http://push.zhanzhang.baidu.com/push.js';}vars=document.getElementsByTagName("script")[0];s.parentNode.insertBefore(bp,s);})();</script>
开启自动内链: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);}完成