为织梦v5.7量身定制符合百度的网站地图
本站有很多关于织梦地图方面的文章,也有现成的织梦地图插件,所以本文仅以保存供以后查阅,下文为转载,没有经过测试,不过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.seoer.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.seoer.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.seoer.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.seoer.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"> </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">
(“/”相对远程站点根目录) </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">
<input type="submit" class='coolbg np' name="Submit" value="更新主页HTML" />
<?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>推荐栏目
本站推荐
- 修改DEDE链接中的单引号为双引号
- DEDECMS启用绝对路径后远程缩略图存BUG
- 织梦dedecms自由列表的"不使用目录默认
- dedecms把文章批量设为未审核的办法
- 织梦调用父级栏目链接和名称
- 织梦data文件夹移动到程序上一层目录
- 优化增加搜索栏目功能后的搜索结果
- 织梦同级栏目指定文章调用实现相关文章教
- 织梦获取顶级栏目\当前栏目\上级栏目的相
- 织梦dedecms栏目添加自定义字段,增加栏
- 织梦DedeCMS自增函数[field:global name=
- dedecms织梦上传图片 缩略图路径统一
- 新增DEDE栏目页,无法更新,无权限
- 修改织梦摘要长度字数限制
- DEDECMS后台批量替换数据安全码不显示
- 织梦DEDECMS网站标签Tag静态化,生成静态
- 去掉FCK编辑器复制粘贴产生的<p>&a
- 完美解决FCK编辑器上传图片自动带DIV标签
- 去掉FCK编辑器每一段之前的空格 
- 织梦登录后台显示空白



![织梦DedeCMS自增函数[field:global name=/]用法示例](http://www.muou.cc/uploads/allimg/170108/1-1F10R12922538-lp.jpg)
