網站關鍵詞內鏈,是做好網站內部最佳化的一個重要環節
DEDECMS有個文檔關鍵詞維護功能,這個功能可以把文章裡的關鍵詞鏈向各個地方,就是內鏈最佳化,作為SEO人員用dedecms系統必須解決的問題,dedecms 文檔關鍵詞維護,這個之前也用過,只不過有點小BUG,在網上搜了搜,終於解決了,dedecms文檔關鍵詞維護官方預設規則是:
1.文檔關鍵詞維護添加關鍵詞和url對應表
2.文章內容出現改關鍵詞
3.文章的關鍵詞出現這個詞(就是這裡)
顯然第3條規則有問題,如果能去掉第3條規則就完美了。
織夢(dedecms)官方預設規則是:
1.添加關鍵詞和關鍵詞的連結地址
設定步驟:進入後台 核心->批量維護->文檔關鍵詞維護
2.文章內容出現該關鍵詞
3.文章的關鍵詞出現這個詞(就是這裡) //這個是在發布文章的時候填寫的
第三條規則使得關鍵詞內鏈不盡完美,所以得修改檔案取消掉第三條規則,達到我們想要的效果,即文章內出現該關鍵詞即鏈向指定的URL
在Dedecms5.5,5.6下測試有效
一、開打include/arc.archives.class.php 檔案
二、尋找 function ReplaceKeyword($kw,&$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))
{
$karr[] = $k;
$GLOBALS['replaced'][$k] = 0;
$kaarr[] = "$k";
}
$i++;
}
}
四、並在注釋或刪除的代碼下面加入以下代碼:
$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)<20)
{
$karr[] = $key;
$kaarr[] = "$key";
}
}
五、OK,已經修改完成了。直接複製上面代碼,文章內同樣的關鍵詞只會出現一個連結。
六、一鍵更新網站->更新所有
dede5.7的解決方案:
1.修改系統參數—>核心設定—>關鍵字替換(是/否)使用本功能會影響HTML產生速度(這裡選 是)
2.修改 include/arc.archives.class.php
找到
$body = preg_replace("/()(.*)(<)(\/a>)/isU", '\\1-]-\\4-[-\\6', $body);
在下方加入以下代碼
//設定所有關鍵詞
$dsql12 = new DedeSql();