POST TIME:2017-11-13 00:59
因為我的新網(wǎng)站交友吧收 錄收錄的特別慢,之前dede系統(tǒng)用的sitemap是直接用的插件百度新聞…因為看到一篇日志,那個鬼說這樣有用,今天仔細查了下,后來發(fā)現(xiàn)這個生成的 xml現(xiàn)在已經(jīng)不符合百度sitemap的要求了,而且還是只適用于news.baidu.com這個網(wǎng)站…瞬間感覺無比蛋疼,然后今天就研究了下怎么用 dedecms生成正確的sitemap文件
好了 直接看步驟吧.
1.dedecms 生成里面有一個生成地圖,原來這個生成的是html,不是我們想要的,而且只生成欄目的,沒文章,但是這個界面我們可以方便操作,所以就在這上面來進行修改
2.在/templets/plus 目錄下 找到兩個文件sitemap.htm 和rssmap.htm,前者我們當中是百度的sitemap 后者我們當中谷歌的sitemap
3.
修改sitemap.htm :把原來的代碼全部刪除 然后用下面的代碼
<?xml version="1.0" encoding="{dede:global.cfg_soft_lang /}"?> <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"> <url> <loc>{dede:global.cfg_basehost/}</loc> <changefreq>always</changefreq> <priority>1.0</priority> </url> {dede:arclist row='10000' orderby='pubdate'} <url> <loc>[field:global.cfg_basehost/][field:arcurl/]</loc> <lastmod>[field:pubdate function="GetDateMK(@me)"/]</lastmod> </url> {/dede:arclist} {dede:channelartlist row='50'} <url> <loc>{dede:global.cfg_basehost/}{dede:field name='typeurl'/}</loc> <lastmod>{dede:php}echo date('Y-m-d');{/dede:php}</lastmod> </url> {dede:channel type='son' row='8'} <url> <loc>[field:global.cfg_basehost/][field:typelink/]</loc> <lastmod>[field:id runphp="yes"]@me=date('Y-m-d');[/field:id]</lastmod> </url> {/dede:channel} {/dede:channelartlist} </urlset>
修改rssmap.htm:把原來的代碼全部刪除 然后用下面的代碼
<?xml version='1.0' encoding='UTF-8'?> <urlset xmlns='http://www.google.com/schemas/sitemap/0.84'> {dede:arclist typeid='0' } <url><loc>[field:global.cfg_basehost/][field:arcurl/]</loc><lastmod>[field:pubdate function="MyDate('Y-m-d',@me)"/]</lastmod><changefreq>daily</changefreq><priority>1.0</priority></url> {/dede:arclist} {dede:channelartlist row=50} <url><loc>{dede:global.cfg_basehost/}{dede:field name='typeurl'/}</loc><lastmod>{dede:php}echo date('Y-m-d');{/dede:php}</lastmod><changefreq>daily</changefreq><priority>1.0</priority></url> {dede:channel type='son' row='8'} <url><loc>[field:global.cfg_basehost/][field:typelink/]</loc><lastmod>[field:id runphp="yes"]@me=date('Y-m-d');[/field:id]</lastmod><changefreq>daily</changefreq><priority>1.0</priority></url> {/dede:channel} {/dede:channelartlist} </urlset>
大家也可以自行修改條數(shù)
4.重點
之前我就是這個地方有問題,一直生成不了數(shù)據(jù),后來改了一些方法調(diào)用才OK
找到dede后臺目錄 找到makehtml_map.php 修改
在上面引用文件的時候 加一句 :require_once DEDEINC.”/arc.partview.class.php”;
搜索if($dopost==”site”)
然后把這個判斷里面的代碼替換掉:
if($dopost==”site”)
{
$murl = $cfg_cmspath.”/sitemap.xml”;
$tmpfile = $cfg_basedir.$cfg_templets_dir.”/plus/sitemap.htm”;
}else
{
$murl = $cfg_cmspath.”/rssmap.xml”;
$tmpfile = $cfg_basedir.$cfg_templets_dir.”/plus/rssmap.htm”;
}
(原因: 1.html改為xml 不用多說 格式問題 2.把data去掉了,因為sitemap這樣的文件放到根目錄效果更好 )
//$dtp = new DedeTagParse();
//$dtp->LoadTemplet($tmpfile);
//$dtp->SaveTo($cfg_basedir.$murl);
把這3句話注釋掉
在上面的判斷下面加入
$pv = new PartView();
$pv->SetTemplet($tmpfile); //在這里修改你的谷歌地圖模板路徑,相對于模板目錄
$pv->SaveToHtml($cfg_basedir.$murl); //生成文件名,保存在根目錄
//$pv->Clear();
把這段代碼也注釋掉
整體代碼如下:
<?php /** * 生成網(wǎng)站地圖 * * @version $Id: makehtml_map.php 1 11:17 2010年7月19日Z tianya $ * @package DedeCMS.Administrator * @copyright Copyright (c) 2007 - 2010, DesDev, Inc. * @license http://help.dedecms.com/usersguide/license.html * @link http://www.dedecms.com */ require_once(dirname(__FILE__)."/config.php"); require_once(DEDEINC."/sitemap.class.php"); require_once(DEDEINC."/dedetag.class.php"); require_once DEDEINC."/arc.partview.class.php"; if(empty($dopost)) { ShowMsg("參數(shù)錯誤!","-1"); exit(); } $isremote = empty($isremote)? 0 : $isremote; $serviterm=empty($serviterm)? "" : $serviterm; $sm = new SiteMap(); $maplist = $sm->GetSiteMap($dopost); if($dopost=="site") { $murl = $cfg_cmspath."/sitemap.xml"; $tmpfile = $cfg_basedir.$cfg_templets_dir."/plus/sitemap.htm"; } else { $murl = $cfg_cmspath."/rssmap.xml"; $tmpfile = $cfg_basedir.$cfg_templets_dir."/plus/rssmap.htm"; } //$dtp = new DedeTagParse(); //$dtp->LoadTemplet($tmpfile); //$dtp->SaveTo($cfg_basedir.$murl); $pv = new PartView(); $pv->SetTemplet($tmpfile); //在這里修改你的谷歌地圖模板路徑,相對于模板目錄 $pv->SaveToHtml($cfg_basedir.$murl); //生成文件名,保存在根目錄 if($cfg_remote_site=='Y' && $isremote == 1) { if($serviterm!="") { list($servurl, $servuser, $servpwd) = explode(',', $serviterm); $config=array( 'hostname' => $servurl, 'username' => $servuser, 'password' => $servpwd,'debug' => 'TRUE'); } else { $config=array(); } if( $ftp->connect($config) ) { //分析遠程文件路徑 $remotefile = $murl; $localfile = '..'.$remotefile; $remotedir = preg_replace('#[^\/]*\.html#', '', $remotefile); $ftp->rmkdir($remotedir); if($ftp->upload($localfile, $remotefile, 'acii')) echo "遠程發(fā)布成功!"."<br />"; } } //$pv->Clear(); echo "<a href='$murl' target='_blank'>成功更新文件: $murl 瀏覽...</a>"; exit();
基本差不多了,如果你配置成功了,給我留一句言,然后多點點我網(wǎng)站的 広吿 ,我會無比感激的!
在你織夢后臺生成的地方 點擊更新網(wǎng)站地圖 那么這個網(wǎng)站地圖的問題就完美結(jié)局了.
因為我是做好了再來寫教程的,所以不確定是否有什么遺漏,如果有什么問題,大家可以留言問我. 大家可以看看我生成的sitemap
主頁:一起交友吧 http://www.jybar.cn
百度Sitemap: http://www.jybar.cn/sitemap.xml
谷歌Sitemap: http://www.jybar.cn/rssmap.xml