别折腾了,织梦网站做自动生成地图真的没那么玄乎,手把手教你搞定
做SEO的兄弟,估计都被那个sitemap.xml折磨过。每次发篇文章,就得去后台手动更新,或者搞个插件跑一下。要是文章多了,那叫一个头大。更别提有些小站长,连插件都装不明白,最后干脆放弃,导致百度蜘蛛来了也爬不到新内容。这滋味,谁懂?
其实吧,织梦这个老系统,虽然界面看着复古,但底子还是扎实的。很多人觉得做自动生成地图难,那是被那些花里胡哨的插件给吓住了。咱今天不整那些虚的,直接上最土、最稳、最管用的办法。不用花钱买插件,也不用担心兼容性问题,纯代码解决。
先说思路。地图文件本质上就是个XML文件,里面列着你网站的所有链接。织梦本身就有生成静态HTML的功能,咱们只要把这个功能稍微改改,让它输出XML格式,这事儿就成了。
第一步,你得去后台看看。找到“核心”->“批量维护”->“更新主页HTML”。别急,不是让你点这个,是让你看它背后的逻辑。咱们要新建一个模板。在模板目录里,新建一个文件,叫sitemap.xml.htm。对,后缀是htm,因为我们要用织梦的标签引擎去解析它。
在这个文件里,写入标准的XML头。,然后加上
这里有个坑,很多人直接写{dede:arclist row=1000},结果发现地图里只有1000条。百度要的是全站。所以,你得把row设大点,或者直接调用全部分类。不过,更稳妥的办法是,用{dede:channel}配合{dede:arclist},或者直接用SQL标签。
我推荐用SQL标签,简单粗暴。
把这段代码放在循环里。注意,field:arcurl是获取文章链接的。如果你用的是伪静态,确保这个标签能正确解析出伪静态链接。还有lastmod,这个很重要,告诉百度你最后修改的时间。
搞定模板后,别急着生成。你得写个调用标签。在首页或者任意页面,加一行代码:
{dede:sql sql="SELECT id FROM dede_archives WHERE arcrank > -1 ORDER BY pubdate DESC"}
{/dede:sql}
不对,这样太复杂。最简单的办法,是利用织梦的“生成HTML”功能。在后台,新建一个“自定义页面”。
对,就是那个“自定义页面”。在内容里,填入刚才写好的sitemap.xml.htm的代码。然后,设置输出文件名:sitemap.xml。
这一步是关键。很多新手不知道自定义页面能生成任意后缀的文件。你把它当成一个普通的HTML页面去生成,但文件名改成.xml,织梦就会乖乖地输出一个XML文件。
生成之后,去根目录看看,sitemap.xml是不是躺在那儿?打开它,看看内容对不对。链接是不是都是你的真实链接?时间格式对不对?
如果对了,那就成功了。
但这还没完。自动化的核心,在于“自动”。你总不能每次发文章,都去后台点一下“更新自定义页面”吧?
这时候,得靠计划任务。织梦后台有个“计划任务管理”。找到“更新主页HTML”那个任务,复制一份,改成“更新地图XML”。
或者,更高级点的玩法,写个简单的PHP脚本,放在根目录。比如auto_sitemap.php。里面写个函数,调用织梦的数据库,循环写入XML文件。然后,用服务器的Crontab,每天凌晨2点执行一次。
这样,你只管发文章,剩下的,交给系统。
当然,如果你懒,连PHP都不想碰。那就用织梦自带的“批量更新文档HTML”功能。虽然它主要是更新文章页,但你可以配合一个小的JS跳转,或者在模板里加个判断。
不过,最推荐的,还是自定义页面+计划任务。这招最稳,最不容易出错。
最后,别忘了把sitemap.xml提交给百度站长平台。不然,你生成得再漂亮,百度也不知道啊。
这事儿,其实没那么多技术含量。就是细心点,别把标签写错,别把路径搞混。织梦虽然老,但依然能打。别被那些新框架吓到,老树发新芽,照样能开花。
记住,工具是死的,人是活的。别总想着找现成的插件,有时候,自己动手改改代码,反而更安心。
本文关键词:织梦网站做自动生成地图