最新公告
  • 欢迎您光临三优资源网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入我们
  • dedecms5.7 生成百度地图sitemap和谷歌地图sitemap教程

    因为我的新网站交友吧收录收录的特别慢,之前dede系统用的sitemap是直接用的插件百度新闻…因为看到一篇日志,那个鬼说这样有用,今天仔细查了下,后来发现这个生成的xml现在已经不符合百度sitemap的要求了,而且还是只适用于news.baidu.com这个网站…瞬间感觉无比蛋疼,然后今天就研究了下怎么用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>
    

     

    大家也可以自行修改条数

    4.重点

    之前我就是这个地方有问题,一直生成不了数据,后来改了一些方法调用才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
    /**
     * 生成网站地图
     *
     * @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("参数错误!","-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 "远程发布成功!"."<br />";
        }
    }
    //$pv->Clear();
    echo "<a href='$murl' target='_blank'>成功更新文件: $murl 浏览...</a>";
    exit();
    

     

    1. 本站所有资源来源于用户上传和网络,因此不包含技术服务请大家谅解!如有侵权请邮件联系客服!3165260857@qq.com
    2. 本站不保证所提供下载的资源的准确性、安全性和完整性,资源仅供下载学习之用!如有链接无法下载、失效或广告,请联系客服处理,有奖励!
    3. 您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容资源!如用于商业或者非法用途,与本站无关,一切后果请用户自负!
    4. 如果您也有好的资源或教程,您可以投稿发布,成功分享后有站币奖励和额外收入!


    三优资源网 » dedecms5.7 生成百度地图sitemap和谷歌地图sitemap教程

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    三优资源网
    一个高级程序员模板开发平台

    发表评论

    • 232会员总数(位)
    • 1266资源总数(个)
    • 0本周发布(个)
    • 0 今日发布(个)
    • 1484稳定运行(天)

    提供最优质的资源集合

    立即查看 了解详情