織夢(mèng)DEDE采集沒有自動(dòng)生成摘要和關(guān)鍵詞的解決辦法
時(shí)間: 2019-05-13 11:27
閱讀: 次
作者:素材無憂網(wǎng)
織夢(mèng)DedeCMS網(wǎng)站采集沒有自動(dòng)生成摘要和關(guān)鍵詞的解決辦法:
織夢(mèng)5.6采集到了內(nèi)容,可沒有自動(dòng)生成摘要和關(guān)鍵字,關(guān)鍵字和摘要都是空的。
可能很多人都遇到了和我們一樣的問題,在論壇實(shí)在沒找到好的解決辦法,就自己動(dòng)手去改改文件。廢話不多說了。
下面是我的解決辦法:
比如我采集了網(wǎng)站:http://www.5loveb.com
首頁的meta代碼是:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>織夢(mèng)模板_dede模板|織夢(mèng)模板下載|織夢(mèng)企業(yè)模板 -專注織夢(mèng)模板設(shè)計(jì)制作</title>
<meta name="keywords" content="專注織夢(mèng)模板設(shè)計(jì)制作!提供精品織夢(mèng)DedeCMS模板下載,分享各種素材資源,技術(shù)教程等信息。" />
<meta name="description" content="dede模板,織夢(mèng)模板,織夢(mèng)模板下載,dedecms,織夢(mèng)企業(yè)模板" />
如果用dedecms的采集的時(shí)候就沒有辦法自動(dòng)獲取description和keywords的值的。
大家注意到了這段代碼和其它網(wǎng)站的區(qū)別了沒??
<meta name=description content=... />
<meta name=keywords content=... />
就是name="description" 和 name="keywords" 少了雙引號(hào)""
這個(gè)可能是dedecms中自動(dòng)分析關(guān)鍵字和摘要的一個(gè)bug吧,沒有考慮到<meta name=keywords content ='' />這種情況!
采集的選項(xiàng)里面也沒有自己填寫關(guān)鍵字和摘要的選項(xiàng)。那我只能自己動(dòng)手修改文件了。
1、修改 include/dedecollection.class.php 內(nèi)容來源:
//自動(dòng)分析關(guān)鍵字和摘要
preg_match("/<meta[\s]+name=['\"]keywords['\"] content=['\"](.*)['\"]/isU",$this->tmpHtml,$inarr);
preg_match("/<meta[\s]+content=['\"](.*)['\"] name=['\"]keywords['\"]/isU",$this->tmpHtml,$inarr2);
if(!isset($inarr[1]) && isset($inarr2[1]))
{
$inarr[1] = $inarr2[1];
}
用下面一段代碼替換上面的
//自動(dòng)分析關(guān)鍵字和摘要
preg_match("/<meta[\s]+name=['\"]keywords['\"] content=['\"](.*)['\"]/isU",$this->tmpHtml,$inarr);
preg_match("/<meta[\s]+content=['\"](.*)['\"] name=['\"]keywords['\"]/isU",$this->tmpHtml,$inarr2);
preg_match("/<meta[\s]+name=keywords content=['\"](.*)['\"]/isU",$this->tmpHtml,$inarr3);
if(!isset($inarr[1]) && isset($inarr2[1]))
{
$inarr[1] = $inarr2[1];
}
if(!isset($inarr[1]) && isset($inarr3[1]))
{
$inarr[1] = $inarr3[1];
}
改了上面的,還有另一個(gè)地方需要修改的
preg_match("/<meta[\s]+name=['\"]description['\"] content=['\"](.*)['\"]/isU",$this->tmpHtml,$inarr);
preg_match("/<meta[\s]+content=['\"](.*)['\"] name=['\"]description['\"]/isU",$this->tmpHtml,$inarr2);
if(!isset($inarr[1]) && isset($inarr2[1]))
{
$inarr[1] = $inarr2[1];
}
用下面的代碼替換掉上面的:
preg_match("/<meta[\s]+name=['\"]description['\"] content=['\"](.*)['\"]/isU",$this->tmpHtml,$inarr);
preg_match("/<meta[\s]+content=['\"](.*)['\"] name=['\"]description['\"]/isU",$this->tmpHtml,$inarr2);
preg_match("/<meta[\s]+name=description content=['\"](.*)['\"]/isU",$this->tmpHtml,$inarr3);
if(!isset($inarr[1]) && isset($inarr2[1]))
{
$inarr[1] = $inarr2[1];
}
if(!isset($inarr[1]) && isset($inarr3[1]))
{
$inarr[1] = $inarr3[1];
}
標(biāo)簽: