为织梦v5.7量身定制符合百度的网站地图

时间:2019-04-14 23:56 / 来源:未知 / 作者:酱油 / 点击:

本站有很多关于织梦地图方面的文章,也有现成的织梦地图插件,所以本文仅以保存供以后查阅,下文为转载,没有经过测试,不过DEDE地图很简单,应该问题不大。

在做织梦二次开发后,一直想要写一片关于织梦网站地图的文章,网站优化需要站长做好方方面面工作。
根据谷歌sitemap规则来DIY,这样既能了解谷歌收录内容,也可保证网站对谷歌蜘蛛尽可能友善。
在网站制作好之后,针对搜索引擎制作网站地图是很有必要的一步,可以把你网站的整个规模和整站的栏目展现在搜索引擎面前,让蜘蛛软件尽快能爬遍网站所有角落。

织梦v5.7自带的网站地图是个html的纯栏目的静态页,飞牛在这里教你制作 整站栏目+整站文章 的网站地图。希望对大家有用。

该方法是借助于“更新首页HTML”功能实现,对该此功能进行了简单的改造就好。
一、先做后台链接
打开“后台文件夹(默认为dede)/inc/inc_menu.php”文件。找到“HTML更新”模块,代码如下:

<m:top item='5_' name='HTML更新' notshowall='1' display='none' rank='sys_MakeHtml'>
   <m:item name='更新主页HTML' link='makehtml_homepage.php' rank='sys_MakeHtml' target='main' />
   <m:item name='更新栏目HTML' link='makehtml_list.php' rank='sys_MakeHtml' target='main' />
   <m:item name='更新文档HTML' link='makehtml_archives.php' rank='sys_MakeHtml' target='main' />
   <m:item name='更新网站地图' link='makehtml_map_guide.php' rank='sys_MakeHtml' target='main' />
   <m:item name='更新RSS文件' link='makehtml_rss.php' rank='sys_MakeHtml' target='main' />
   <m:item name='获取JS文件' link='makehtml_js.php' rank='sys_MakeHtml' target='main' />
   <m:item name='更新专题HTML' link='makehtml_spec.php' rank='sys_MakeHtml' target='main' />
</m:top>

这里我们要添加"更新xml地图"的链接:代码如下:

<m:top item='5_' name='HTML更新' notshowall='1' display='none' rank='sys_MakeHtml'>
   <m:item name='更新主页HTML' link='makehtml_homepage.php' rank='sys_MakeHtml' target='main' />
   <m:item name='更新栏目HTML' link='makehtml_list.php' rank='sys_MakeHtml' target='main' />
   <m:item name='更新文档HTML' link='makehtml_archives.php' rank='sys_MakeHtml' target='main' />
   <m:item name='更新网站地图' link='makehtml_map_guide.php' rank='sys_MakeHtml' target='main' />
   <m:item name='更新xml地图' link='makehtml_sitemap.php' rank='sys_MakeHtml' target='main' />
   <m:item name='更新RSS文件' link='makehtml_rss.php' rank='sys_MakeHtml' target='main' />
   <m:item name='获取JS文件' link='makehtml_js.php' rank='sys_MakeHtml' target='main' />
   <m:item name='更新专题HTML' link='makehtml_spec.php' rank='sys_MakeHtml' target='main' />
</m:top>

链接做好了,接下来我们需要制作”makehtml_sitemap.php“文件

二、制作”makehtml_sitemap.php“ 文件
在后台文件夹复制一份makehtml_homepage.php文件,更名为作“makehtml_sitemap.php“,打开作”makehtml_sitemap.php”文件:
1、找到第26行: $remotepos = empty($remotepos)? '/index.html' : $remotepos;  改成:$remotepos = empty($remotepos)? '/sitemap.xml' : $remotepos;
2、找到第45行:$GLOBALS['_arclistEnv'] = 'index';  改成$GLOBALS['_arclistEnv'] = 'sitemap';
3、找到第48行:echo "成功更新主页HTML:".$homeFile."<br /><a href='{$position}' target='_blank'>浏览...</a><br />";  改成  echo "成功更新xml地图:".$homeFile."<br /><a href='{$position}' target='_blank'>浏览...</a><br />";
4、最后一行,第77行:include DedeInclude('templets/makehtml_homepage.htm');  改成  include DedeInclude('templets/makehtml_xmlmap_guid.htm');
这里就算搞定了,接下来就是“templets/makehtml_xmlmap_guid.htm”文件。

5、按照第四条制作模板

三、制作“templets/makehtml_xmlmap_guid.htm”文件:
进入 “后台文件夹/templets/”复制  “makehtml_homepage.htm” 更名为:“templets/makehtml_sitemap.htm”。然后你可以根据自己的情况对该文件进行适当的修改。当然栏目名称是肯定需要修改的。注意:这里请把模板和生成路径改成成固定,把不必要的去掉,如图。

注意事项:制作的sitemap生成页面,一定不能保存生成选项,而且分为手动改错代码,建议把文本框里的内容整理成不能编辑,参考代码如下(文末也附了一份已经修改好的文件):

readonly unselectable="on" 该属性跟disable类似,input 元素,不可编辑,不可复制,不可选择,不能接收焦点,设置后文字的颜色也会变成灰色,但是后台可以接收到传值。示例:<input type="text"  readonly  unselectable="on" >

四、做GOOGLE地图的模板
基本功能都实现了,现在就是做GOOGLE地图的模板了。这个文件就只能够自己制作了。对于XML地图的格式这里就不介绍了,不知道的朋友可以先去了解一下。
这里我就直接将GOOGLE地图模板文件代码COPY一份出来,该文件我命名为:sitemap.xml,代码如下:

<?xml version="1.0" encoding="gb2312"?>
<urlset xmlns="http://www.google.com/schemas/sitemap/0.84">
<url>
<loc>https://www.wangzhan.cc</loc>
<lastmod>{dede:arclist row=1 titlelen=24 orderby=pubdate}
[field:pubdate function=strftime('%Y-%m-%d',@me)/]
{/dede:arclist}</lastmod>
<changefreq>daily</changefreq>
<priority>1.0</priority>
</url>
{dede:channelartlist}
<url>
<loc>https://www.wangzhan.cc{dede:field name='typeurl'/}</loc>
<changefreq>daily</changefreq>
<priority>0.9</priority>
</url>
{dede:sql sql='Select * from dede_arctype where reid=~id~  ORDER BY id}
<url>
<loc>https://www.wangzhan.cc[field:typedir function="str_replace('{cmspath}','',@me)"/] </loc>
<changefreq>daily</changefreq>
<priority>0.8</priority>
</url>
{/dede:sql}
{/dede:channelartlist}
{dede:arclist row=2000 orderby=pubdate}
<url>
<loc>https://www.wangzhan.cc[field:arcurl/]</loc>
<lastmod>[field:pubdate function=strftime('%Y-%m-%d',@me)/]</lastmod>
<changefreq>weekly</changefreq>
<priority>0.7</priority>
</url>
{/dede:arclist}
</urlset>

到这里,织梦谷歌网站地图就制作完成,然后打开你网站的谷歌管理员平台,将网站地图提交给谷歌,一般谷歌会在一天内收录。 

附言:

1、通过自定义列表功能,生成单页也可以达到。

2、上面是针对谷歌,以下记录主要是针对百度提出的sitemap要求(百度资源后台可以看到或阅读https://ziyuan.baidu.com/wiki/44)

<?xml version="1.0" encoding="utf-8"?>
<urlset>
<url>
<loc>{dede:global.cfg_basehost/}</loc>
<lastmod>{dede:arclist row=1 titlelen=24 orderby=pubdate}
[field:pubdate function=strftime('%Y-%m-%d',@me)/]
{/dede:arclist}</lastmod>
<changefreq>daily</changefreq>
<priority>1.0</priority>
</url>
{dede:channelartlist}
<url>
<loc>{dede:field name='typeurl'/}</loc>
<changefreq>daily</changefreq>
<priority>0.9</priority>
</url>
{dede:sql sql='Select * from dede_arctype where reid=~id~  ORDER BY id}
<url>
<loc>[field:typedir function="str_replace('{cmspath}','',@me)"/] </loc>
<changefreq>daily</changefreq>
<priority>0.8</priority>
</url>
{/dede:sql}
{/dede:channelartlist}
{dede:arclist row=2000 orderby=pubdate}
<url>
<loc>[field:arcurl/]</loc>
<lastmod>[field:pubdate function=strftime('%Y-%m-%d',@me)/]</lastmod>
<changefreq>weekly</changefreq>
<priority>0.7</priority>
</url>
{/dede:arclist}
{dede:tag row='300' sort='new'}
<url>
<loc>[field:global.cfg_basehost/][field:link/]</loc>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
{/dede:tag}
</urlset>

以上代码只是举例,大家根据自己网页的URL自行整理。

附:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=<?php echo $cfg_soft_lang; ?>">
<title>主页更新向导</title>
<link href="css/base.css" rel="stylesheet" type="text/css">
<link rel="stylesheet" type="text/css" media="all" href="../include/calendar/calendar-win2k-1.css" title="win2k-1" />
<script type="text/javascript" src="../include/calendar/calendar.js"></script>
<script type="text/javascript" src="../include/calendar/calendar-cn.js"></script>
<script language="javascript">
function SelectTemplets(fname)
{
   var posLeft = 200;
   var posTop = 300;
   window.open("../include/dialog/select_templets.php?f="+fname, "poptempWin", "scrollbars=yes,resizable=yes,statebar=no,width=600,height=400,left="+posLeft+", top="+posTop);
}
</script>
</head>
<body background="images/allbg.gif" leftmargin="8" topmargin="8">
<table width="98%" border="0" cellpadding="3" cellspacing="1" bgcolor="#D6D6D6" align="center">
  <form name="form1" action="makehtml_homepage.php" target="stafrm" method="post">
  <input type="hidden" name="dopost" value="make">
    <tr> 
      <td height="28" colspan="2" background='images/tbg.gif'>
      <table width="98%" border="0" cellpadding="0" cellspacing="0">
          <tr> 
            <td width="30%" height="18" style="padding-left:10px;"><strong>sitemap更新向导:</strong></td>
            <td width="70%" align="right">&nbsp;</td>
          </tr>
        </table>      </td>
    </tr>
    <tr> 
      <td width="177" valign="top" bgcolor="#FFFFFF">选择主页模板:</td>
      <td width="791" valign="top" bgcolor="#FFFFFF">
        <input name="templet" type="text" id="templet" style="width:300" value="default/sitemap.htm" readonly  unselectable="on"> 
        <input type="button" name="set4" value="浏览..." style="width:60" onClick="SelectTemplets('form1.templet');">      </td>
    </tr>
    <tr> 
      <td height="20" colspan="2" valign="top" bgcolor="#FFFFFF">默认的情况下,生成的主页文件放在CMS的安装目录,如果您的CMS不是安装在网站根目录的,又想把主页创建到网站根目录,那么请用相对路径来表示“主页位置”。<br />
        例:您的CMS安装在 
        http://www.abc.com/dedecms/ 目录,您想生成的主页为 http://www.abc.com/index.html,那么主页位置就应该用: 
        “../index.html”。</td>
    </tr>
    <tr> 
      <td height="20" valign="top" bgcolor="#FFFFFF">主页位置:</td>
      <td height="20" valign="top" bgcolor="#FFFFFF"><input name="position" type="text" id="position" value="../sitemap.xml" size="30" readonly  unselectable="on" /></td>
    </tr>
           <?php 
      if($cfg_remote_site=='Y')
      {
    ?> 
    <tr> 
      <td height="20" valign="top" bgcolor="#FFFFCC">远程发布:</td>
      <td height="20" valign="top" bgcolor="#FFFFCC"><input name="remotepos" type="text" id="remotepos" value="/index.html" size="30"> 
        (“/”相对远程站点根目录)&nbsp;&nbsp;&nbsp;&nbsp;</td>
    </tr>
    <tr>
      <td height="20" colspan="2" valign="top" bgcolor="#FFFFCC">您已经启用远程发布,请确保正确 [<a href="sys_info.php" style="color:red">配置FTP</a>]</td>
    </tr>
     <?php
      }
    ?>    
<tr> 
      <td height="20" valign="top" bgcolor="#FFFFFF">相关选项:</td>
      <td height="20" valign="top" bgcolor="#FFFFFF">
      <input name="saveset" type="radio" value="0" class="np" checked>
       不保存当前选项
    </td>
    </tr>
<tr>
  <td height="20" valign="top" bgcolor="#FFFFFF">首页模式:</td>
  <td height="20" valign="top" bgcolor="#FFFFFF">
  <input name="showmod" type="radio" class="np" value="1" <?php echo ($row['showmod']==1)? "checked='checked'" : "";?> />
生成静态 (或者手动删除根目录下index.html文件)</td>
</tr>
  
 
    <tr> 
      <td height="31" colspan="2" bgcolor="#ffffff" align="center">&nbsp;&nbsp;
        <input type="submit" class='coolbg np' name="Submit" value="更新主页HTML" />
      &nbsp;
           <?php 
      if($cfg_remote_site=='Y')
      {
    ?>   
      <input name="isremote" type="checkbox" id="isremote" value="1">
是否同步远程发布  <?php GetFtp();?>     <?php
      }
    ?></td>
    </tr>
  </form>
  <tr bgcolor="#F9FCEF"> 
    <td height="20" colspan="2"><table width="100%">
        <tr> 
          <td width="74%">进行状态: </td>
          <td width="26%" align="right">
            <script language='javascript'>
                function ResizeDiv(obj,ty)
                {
                    if(ty=="+") document.all[obj].style.pixelHeight += 50;
                    else if(document.all[obj].style.pixelHeight>80) document.all[obj].style.pixelHeight = document.all[obj].style.pixelHeight - 50;
                }
                </script>
            [<a href='#' onClick="ResizeDiv('mdv','+');">增大</a>] [<a href='#' onClick="ResizeDiv('mdv','-');">缩小</a>]          </td>
        </tr>
      </table> </td>
  </tr>
  <tr bgcolor="#FFFFFF"> 
    <td colspan="2" id="mtd">
            <div id='mdv' style='width:100%;height:350px;'> 
        <iframe name="stafrm" frameborder="0" id="stafrm" width="100%" height="100%"></iframe>
      </div>    </td>
  </tr>
</table>
</body>
</html>


猜你喜欢

推荐栏目

DEDECMS
DEDECMS

DEDE使用经验和技巧

WordPress
Wordpress

WP使用经验和技巧

Zblog
Zblog

Zblog使用经验和技巧

CSS
CSS

CSS使用经验和技巧

网络资料
网络资料

转载实用网络资料

按键伤人
按键伤人

转载乱七八糟的网络资源

我是酱油
我是酱油

随笔札记 记录生活点滴

本站推荐

百度站内搜索

专业博客主机