为织梦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.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"> </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编辑器每一段之前的空格 
- 织梦登录后台显示空白