對于dedecms文檔關鍵詞出現重復鏈接的解決方法
導讀:織夢技術
DEDECMS的文檔關鍵詞功能可以給網站增加內容,但是發現這個功能一個問題沒有處理好,就是當關鍵詞出現不同長度重疊時會出現錯誤。。
比如同時有兩個關鍵詞, dedecms 和 dedecms模板 這里,如果出現dedecms模板,他就會給 dedecms 加上個鏈接,然后 dedecms 模板又套一個鏈接,造成頁面HTML標簽不對稱,對SEO很不友好。。
下面給出解決方法。。。
找到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("/(&ldede下瓻模板下載t;a(.*))(>)(.*)(<)(\/a>)/isU", '\\1-]-\\4-[-\\6', $body); global $dsql; $query="SELECT * FROM dede_keywords WHERE rpurl<>'' and sta=1 ORDER BY length(keyword)desc"; $dsql->SetQuery($query); $dsql->Execute(); whi織夢模板網le($row = $dsql->GetArray()) { $key = trim($row['keyword']); $key_url=trim($row['rpurl']); $karr[] = $key; $kaarr[] = "<u><a href='$key_url' target='_blank' title='$key'>$key</a></u>"; } foreach ($karr as $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); } &nb織夢模板免費下裁sp; //恢復超鏈接 $body = preg_replace("/(<a(.*))-\]-(.*)-\[-(\/a>)/isU", '\\1>\\3<\\4', $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)."/", $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;}
聲明: 本文由我的SEOUC技術文章主頁發布于:2023-07-22 ,文章對于dedecms文檔關鍵詞出現重復鏈接的解決方法主要講述解決方法,關鍵詞,織夢網站建設源碼以及服務器配置搭建相關技術文章。轉載請保留鏈接: http://www.bifwcx.com/article/web_33751.html