织梦自带的网站地图生成只能生成版块分类的链接,没有文章,同时文件格式是html不是xml,不符合搜索引擎如百度等提交的要求,所以大海今天稍微修改下,让后台自动生成符合百度提交要求的sitemap.xml
1、修改根目录/后台目录/makehtml_map.php
(1)把
require_once(DEDEINC."/dedetag.class.php");
改成
require_once(DEDEINC."/arc.partview.class.php");
(2)把
$dtp = new DedeTagParse();
$dtp->LoadTemplet($tmpfile);
$dtp->SaveTo($cfg_basedir.$murl);
改成
$dtp = new PartView();
$GLOBALS['_arclistEnv'] = 'index';
$dtp->SetTemplet($tmpfile);
$dtp->SaveToHtml($cfg_basedir.$murl);
(3)把
$dtp->Clear();
注释掉
//$dtp->Clear();
(4)26行 把
$murl = $cfg_cmspath."/data/sitemap.html";
$tmpfile = $cfg_basedir.$cfg_templets_dir."/plus/sitemap.htm";
改成
$murl = $cfg_cmspath."/sitemap.xml";
$tmpfile = $cfg_basedir.$cfg_templets_dir."/plus/sitemap.htm";
2、修改根目录/templets/plus/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>
<changefreq>weekly</changefreq>
<priority>0.6</priority>
<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>
<changefreq>daily</changefreq>
<priority>0.8</priority>
<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>
3、注意后台系统->站点设置里,站点根网址和网页主页链接都要填写网站主页链接,去掉尾部斜杠和index文件,如:https://www.dhzy.fun
4、可以去后台生成->更新网站地图试试了!