多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國(guó)內(nèi)最全I(xiàn)T社區(qū)平臺(tái) 聯(lián)系我們 | 收藏本站
阿里云優(yōu)惠2
您當(dāng)前位置:首頁(yè) > php開(kāi)源 > DedeCMS > 解析dedecms使用關(guān)鍵詞關(guān)聯(lián)文章無(wú)效的解決方法

解析dedecms使用關(guān)鍵詞關(guān)聯(lián)文章無(wú)效的解決方法

來(lái)源:程序員人生   發(fā)布時(shí)間:2014-03-19 21:29:54 閱讀次數(shù):2422次

前段時(shí)間因?yàn)橐恢睕](méi)用這個(gè)使用關(guān)鍵詞關(guān)聯(lián)文章的功能,所以一直沒(méi)在意,但最近發(fā)現(xiàn)內(nèi)連建設(shè)好了,對(duì)于文章的排名起很大的作用,于是就開(kāi)始整理內(nèi)鏈,但是在操作過(guò)程中遇到了很多問(wèn)題,dede無(wú)法自動(dòng)替換關(guān)鍵詞,無(wú)法使用關(guān)鍵詞關(guān)聯(lián)文章等等,于是就開(kāi)始在網(wǎng)上找,找了很多方法,不能說(shuō)沒(méi)有用,但是每個(gè)都有缺點(diǎn),于是自己就開(kāi)始研究了,經(jīng)過(guò)半天的努力,終于讓我搞明白了,今天就給大家分享出來(lái)。

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

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

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

解決前: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函數(shù)的代碼:

function ReplaceKeyword($kw,&$body)
{
global $cfg_cmspath;
$maxkey = 5;
$kws = explode(",",trim($kw)); //以分好為間隔符
$i=0;
$karr = $kaarr = $GLOBALS['replaced'] = array();
//暫時(shí)屏蔽超鏈接
$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);
//恢復(fù)超鏈接
$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函數(shù)的代碼

function ReplaceKeyword($kw,&$body)
{
global $cfg_cmspath;
$maxkey = 5;
$kws = explode(",",trim($kw)); //以分好為間隔符
$i=0;
$karr = $kaarr = $GLOBALS['replaced'] = array();
//暫時(shí)屏蔽超鏈接
$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);
//恢復(fù)超鏈接
$body = preg_replace("/(<a(.*))-]-(.*)-[-(/a>)/isU", '1>3<[url=file://4]4'[/url], $body);
return $body;
}

先分析204行的代碼,細(xì)心的朋友可能已經(jīng)發(fā)現(xiàn),解決后的代碼比解決前少了&& !empty($this->Fields['keywords'] 對(duì)就是這個(gè)原因,dede獲取關(guān)鍵詞的時(shí)候要判斷你這篇文章是否填了關(guān)鍵詞,這個(gè)我們一半不填,所以把他去掉就行了,還有的朋友說(shuō)應(yīng)該把cfg_keyword_replace 換成 cfg_keyword_like  他認(rèn)為是dede的人寫錯(cuò)了,其實(shí)是自己沒(méi)有看清罷了,其實(shí)不用換這個(gè)的,因?yàn)樗麄兇淼木筒皇且粋€(gè)意思。
cfg_keyword_replace是指關(guān)鍵字替換(是/否)使用本功能會(huì)影響HTML生成速度: 這項(xiàng) 而cfg_keyword_like 是指使用關(guān)鍵詞關(guān)連文章:

然后我們?cè)诜治鯮eplaceKeyword  原本的dede是從你所填的tag里 遍歷tags,然后與你設(shè)置的文檔關(guān)鍵詞相比較,如果找到了,就將這個(gè)關(guān)鍵詞替換成帶鏈接的關(guān)鍵詞,如果tags為空,就無(wú)法執(zhí)行了。這就是為什么大家使用文檔關(guān)鍵詞關(guān)聯(lián)文章失敗的原因,而解決方法中,直接不讓他遍歷tags,直接去替換,這樣就解決了。

但是出現(xiàn)了幾個(gè)問(wèn)題。1,這樣解決在生成文章的時(shí)候速度會(huì)降低,2,無(wú)法控制總的關(guān)鍵詞鏈接數(shù)量。希望有高手能夠解決下。

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

生活不易,碼農(nóng)辛苦
如果您覺(jué)得本網(wǎng)站對(duì)您的學(xué)習(xí)有所幫助,可以手機(jī)掃描二維碼進(jìn)行捐贈(zèng)
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關(guān)閉
程序員人生
主站蜘蛛池模板: 国产乱视频在线观看播放 | 亚洲免费高清 | 中文字幕在线播放量 | 欧美性色一级在线观看 | 久久www免费人成看片入口 | 伊人久久大香线蕉资源 | julia一区福利视频在线观看 | 美女私人影院 | 亚洲伊人久久在 | 国产性生活视频 | 午夜福免费福利在线观看 | aⅴ在线免费观看 | 国产欧美曰韩一区二区三区 | 色黄在线 | 小说区图片区综合视频区 | 中文字幕亚洲精品日韩精品 | 国产精品久久久久久五月尺 | 性欧美xxxx视频 | 俄罗斯精品18videosex性 | 亚洲免费观看在线视频 | 自拍视频一区二区 | jizzjizz视频| 天天干夜夜骑 | 日本不卡视频在线 | 国产成人91 | 爱爱网网站免费观看 | 国内精品免费视频 | 国产三级在线观看视频 | 国内精品伊人久久大香线焦 | 波多野一区二区三区在线 | 性欧美video高清熟睡 | 亚洲精品成人a在线观看 | 成人欧美精品一区二区不卡 | www.自拍偷拍.com | 青青草久热精品视频在线观看 | 欧美精品亚洲精品日韩1818 | 国模无水印一区二区三区 | 黑人性xxx | 亚洲图片一区 | 国产亚洲欧美一区二区三区 | 手机在线一区二区三区 |