本武林網分享的是dedecms一個非常實用的技巧,用過dede的人都知道,dede文章內鏈生成需要在后臺添加文章的時候在關鍵詞處填上想被鏈接的詞,同時還要在關鍵詞維護中有該關鍵詞。
由于一篇文章關鍵詞數量有限,且文章包含的詞眾多,除了該篇文章主要的關鍵詞之外,對于其他頁面有所關系的詞最好也能鏈上,這點,武林網的做得比較好。
那修改一個地方,可以實現當文章中出現關鍵詞維護中的詞的時候,生成的時候就會自動鏈接。
修改方式如下:
找到include/arc.archives.class 文件下的:ReplaceKeyword 函數。
將這部分改成以下代碼:
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); foreach($kws as $k) { $k = trim($k); if($k!="") { /* if($i > $maxkey) { break; } $myrow = $this->dsql->GetOne("select * from dede_keywords where keyword='$k' And rpurl<>'' "); if(is_array($myrow))*/ $dsql = new DedeSql(false); $query="select * from dede_keywords where rpurl<>'' "; $dsql->SetQuery($query); $dsql->Execute(); while($row = $dsql->GetArray()) { $key = trim($row['keyword']); $rul=trim($row['rpurl']); if($rul!=”") if(!in_array($key, $kw)) if(!in_array($kw,$key)) if(substr_count($body,$key)<5) { $karr[] = $key; $kaarr[] = “<a href=’$rul’><u>$key</u></a>”; } } { $karr[] = $k; $GLOBALS['replaced'][$k] = 0; $kaarr[] = “<a target=/”_blank/” href=/”{$myrow['rpurl']}/”>$k</a>”; } $i++; } } $body = preg_replace(”/(^|>)([^<]+)(?=<|$)/sUe”, “_highlight(’//2′, /$karr, /$kaarr, ‘//1′)”, $body); //恢復超鏈接 $body = preg_replace(”/()/isU”, ‘//1>//3<//4′, $body); return $body; } }//End Archives |
武林網推薦大家使用
新聞熱點
疑難解答