织梦dedecms5.7 生成百度地图sitemap和谷歌地图sitemap教程

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

因为我的新网站 交友吧 收 录收录的特别慢,之前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();

   基本差不多了,如果你配置成功了,给我留一句言,然后多点点我网站的   広吿    ,我会无比感激的!

在你织梦后台生成的地方  点击更新网站地图  那么这个网站地图的问题就完美结局了.

 

因为我是做好了再来写教程的,所以不确定是否有什么遗漏,如果有什么问题,大家可以留言问我.  大家可以看看我生成的sitemap

主页: 一起交友吧 http://www.jybar.cn

百度Sitemap:  http://www.jybar.cn/sitemap.xml

谷歌Sitemap:  http://www.jybar.cn/rssmap.xml


 


 

本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!

相关文档推荐

安装DEDECMS出现Deprecated: Function ereg_replace() is deprecated in 的原因通常出现在低版本的织梦程序上如dedecms v5.6版本,下面跟版网小编为大家分享下这种情况的解决方法: DEDE中有很多地方的正则函数都用的ereg_replace,而这个函数现在在PHP5.3中
我们在使用织梦时候,需要用到统计子栏目数量。要怎么实现呢?下面跟版网小编为大家讲解下: 其实主要是利用{dede:field.typeid/}这个标签实现。 标签如下: {dede:field.typeid runphp=yes}$id = @me;global $dsql;$sql=select COUNT(id) as num from dede_
有些朋友可能在使用最新版V57 后台-系统基本参数设置中添加新变量时候出现:Request var not allow! 后面经过小编查看,找到了方法,和大家一起来分享: 找到:根目录-include-common.inc.php if( strlen($svar)0 preg_match(#^(cfg_|GLOBALS|_GET|_POST|_CO
ShowMsg(成功登录,现在转向指定页面...,javascript:location.replace(document.referrer);,0,2000); 返回并刷新页面: 这个地方填写:location.replace(document.referrer); ShowMsg(成功登录,现在转向指定页面...,-1,0,2000); 返回不刷新页面: 如果填写
在用织梦做一些项目时,时常会碰到需要在当前页面调用顶级栏目名称的时候,织梦默认{dede:field name=typename /} 可以获取当前栏目页上一级栏目的名称,而不是当前栏目顶级栏目名称。 使用时一定要注意是不是需要修改查询语句表的前缀 下面拓展出一个方法来
织梦5.7会员中心,由于为了安全性问题,限制了注册会员在会员中心发布信息的时候上传图片,但是管理员登录会员中心发布信息的时候上传图片却不受影响。那该如何解决呢?下面我们来说明一下具体的解决方案。 首先,具体的问题为,注册会员点击图片上传,预览