日本搞逼视频_黄色一级片免费在线观看_色99久久_性明星video另类hd_欧美77_综合在线视频

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > php開源 > DedeCMS > 解析dedecms使用關鍵詞關聯文章無效的解決方法

解析dedecms使用關鍵詞關聯文章無效的解決方法

來源:程序員人生   發布時間:2014-03-19 21:29:54 閱讀次數:2430次

前段時間因為一直沒用這個使用關鍵詞關聯文章的功能,所以一直沒在意,但最近發現內連建設好了,對于文章的排名起很大的作用,于是就開始整理內鏈,但是在操作過程中遇到了很多問題,dede無法自動替換關鍵詞,無法使用關鍵詞關聯文章等等,于是就開始在網上找,找了很多方法,不能說沒有用,但是每個都有缺點,于是自己就開始研究了,經過半天的努力,終于讓我搞明白了,今天就給大家分享出來。

按dede默認的如何才能正確替換關鍵詞? 1.需要你在后臺設置關鍵詞鏈接地址,2。需要你在系統的基本參數設置里找到 核心設置---關鍵字替換(是/否)使用本功能會影響HTML生成速度:選是,3.需要你在系統基本參數里 找到性能選項----使用關鍵詞關連文章: 是。 4.然后再發布內容的時候 需要你在內容的tags里填上 你想替換的關鍵詞(V5.7以下版本) V5.7以上版本的需要你在文章的關鍵詞里填入你想替換的關鍵詞或者關鍵詞不能為空。只有滿足這些時,dede才會替換你想要替換的關鍵詞。比如我在我的網站發布一篇文章http://www.ixuela.com/yingyu/yufa/12944.html,我想把里面的 名詞,代詞等幾個關鍵詞連接到我想要的頁面,但是我發布的時候很懶,也不想填tags和關鍵詞,這樣發布的時候就無法替換關鍵詞鏈接了,通過以下方法就可以不用填tags和關鍵詞就能替換。

很多朋友在發布文章時,一半不填寫關鍵詞,或者Tags,那么久這個功能就無效了。那么如何解決呢? 讓我們先看下 解決錢的dede默認的代碼,和解決后的代碼,分析以下 就明白了。。

代碼有2個部分,一是在arc.archives.class。php 里第204行左右。一個是在最后面的function ReplaceKeyword($kw,&$body)函數,讓我們看看解決前和解決后的代碼的不同吧。

解決前:204行代碼:

if($arr['type']=='htmltext' && $GLOBALS['cfg_keyword_replace']=='Y' && !empty($this->Fields['keywords']))
{
$this->Fields[$nk] = $this->ReplaceKeyword($this->Fields['keywords'],$this->Fields[$nk]);
}

解決前 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(.*))(>)(.*)(<)(/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 [url=mailto:dede_keywords]dede_keywords[/url] where keyword='$k' And rpurl<>'' ");
if(is_array($myrow))
{
$karr[] = $k;
$GLOBALS['replaced'][$k] = 0;
$kaarr[] = "<a href='{$myrow['rpurl']}'><u>$k</u></a>";
}
$i++;
}
}
$body = preg_replace("/(^|>)([^<]+)(?=<|$)/sUe", "_highlight('2', $karr, $kaarr, '1')", $body);
//恢復超鏈接
$body = preg_replace("/(<a(.*))-]-(.*)-[-(/a>)/isU", '1>3<[url=file://4]4'[/url], $body);
return $body;
}

解決后 204行代碼:

if($arr['type']=='htmltext' && $GLOBALS['cfg_keyword_replace']=='Y')
{
$this->Fields[$nk] = $this->ReplaceKeyword($this->Fields['keywords'],$this->Fields[$nk]);
}

解決后 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(.*))(>)(.*)(<)(/a>)/isU", '1-]-4-[-6', $body);
global $dsql;
$query="SELECT * FROM [url=mailto:dede_keywords]dede_keywords[/url] WHERE rpurl<>'' ORDER BY rank DESC";
$dsql->SetQuery($query);
$dsql->Execute();
while($row = $dsql->GetArray())
{
$key = trim($row['keyword']);
$key_url=trim($row['rpurl']);
$karr[] = $key;
$kaarr[] = "<a href='$key_url' target='_blank'><u>$key</u></a>";

}



$body = preg_replace("/(^|>)([^<]+)(?=<|$)/sUe", "_highlight('2', $karr, $kaarr, '1')", $body);
//恢復超鏈接
$body = preg_replace("/(<a(.*))-]-(.*)-[-(/a>)/isU", '1>3<[url=file://4]4'[/url], $body);
return $body;
}

先分析204行的代碼,細心的朋友可能已經發現,解決后的代碼比解決前少了&& !empty($this->Fields['keywords'] 對就是這個原因,dede獲取關鍵詞的時候要判斷你這篇文章是否填了關鍵詞,這個我們一半不填,所以把他去掉就行了,還有的朋友說應該把cfg_keyword_replace 換成 cfg_keyword_like  他認為是dede的人寫錯了,其實是自己沒有看清罷了,其實不用換這個的,因為他們代表的就不是一個意思。
cfg_keyword_replace是指關鍵字替換(是/否)使用本功能會影響HTML生成速度: 這項 而cfg_keyword_like 是指使用關鍵詞關連文章:

然后我們在分析ReplaceKeyword  原本的dede是從你所填的tag里 遍歷tags,然后與你設置的文檔關鍵詞相比較,如果找到了,就將這個關鍵詞替換成帶鏈接的關鍵詞,如果tags為空,就無法執行了。這就是為什么大家使用文檔關鍵詞關聯文章失敗的原因,而解決方法中,直接不讓他遍歷tags,直接去替換,這樣就解決了。

但是出現了幾個問題。1,這樣解決在生成文章的時候速度會降低,2,無法控制總的關鍵詞鏈接數量。希望有高手能夠解決下。

出處:http://www.ixuela.com

生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 91久久久久久久久久久 | 日韩一区网站 | 能看毛片的网站 | 亚洲欧美专区 | 成人在线网址 | 最好的2019中文字幕视频 | 国产综合一区二区 | 加勒比在线免费视频 | 国产日韩精品视频一区二区三区 | 成人播放| 黄色大片在线 | 伊人国产在线观看 | 岛国一区 | 欧美日本精品 | 二区三区在线 | 欧美日韩精品一二三区 | 少妇又紧又色又爽又刺激视频 | 国产精品最新 | 国产网红女主播免费视频 | 国产日本亚洲香蕉视频 | 九九综合九九综合 | 综合久久婷婷 | 国内精品久久久久影院薰衣草 | 91精品久久久久久久久久久 | 久久久久久久久国产精品 | 久久99精品久久久久婷婷 | 国产成人99久久亚洲综合精品 | 亚洲视频一区在线观看 | 国产精品一区二区三区四区 | 一区二区精品在线 | 亚洲综合一区二区 | 亚洲三区在线 | 欧美日韩成人影院 | 一级性a | 国产精品免费一区二区三区 | 永久免费av在线 | 欧美伊人精品成人久久综合97 | 国内久久| 国产免费自拍 | 欧美天堂 | 一区二区三区四区在线 |