本文关键词:帝国cms怎么做网站地图

说实话,刚接触帝国cms那会儿,我也被这个所谓的“伪静态”和“动态链接”搞疯过。很多人问帝国cms怎么做网站地图,其实真没那么复杂,但网上那些教程要么太老,要么就是让你去下载个不知名插件,结果装上就报错,还收费。今天我不讲大道理,就讲我最近帮一个做建材网站的朋友解决这个问题的真实过程。

咱们先说最笨但也最稳的方法,就是利用帝国cms自带的功能。很多新手不知道,帝国其实自带了生成sitemap的功能,只是藏得深。你进后台,找到“模板”->“公共模板变量”,这里有个叫“footer”的,通常大家会在里面放版权信息。但你要做的,是在这里加一段代码,或者更直接点,新建一个模板专门放地图。

对,就是新建一个模板。在后台找到“模板”->“管理模板语言”,新建一个模板,文件名随便起,比如叫sitemap.php。然后在里面写代码。别怕,代码很简单。核心就是调用帝国cms的栏目和内容表。

这里有个坑,很多教程让你直接写SQL语句,但我建议用帝国自带的标签。比如调用所有栏目,用[ecmsinfo]标签是不行的,得用灵动标签[e:loop]。

比如:

[e:loop={"select classid,classname,classpath from [!db.pre!]enewsclass where bclassid=0 and showclass=0 order by myorder",0,24,0}]

[/e:loop]

这段代码能列出所有一级栏目。然后二级栏目就得再套一层循环,或者直接用递归。但这太麻烦了。其实,对于大多数中小企业网站,你只需要把内容页的链接列出来就行。

怎么列?还是用[e:loop]。

[e:loop={"select title,titleurl,titleurl from [!db.pre!]ecms_news where checked=1 order by newstime desc limit 1000",0,24,0}]

daily

0.8

[/e:loop]

注意啊,这里的表名ecms_news得改成你实际的表名,有的网站可能叫ecms_product或者ecms_article。别复制粘贴就不看,这是我踩过的雷。有一次我帮客户改,直接复制网上的代码,结果生成出来的地图全是空的,查了半天才发现表名不对。

生成这个模板后,你要在后台新建一个页面,选择这个模板。然后发布。这时候,你访问这个页面,就能看到XML格式的地图了。

但是,手动生成有个大问题,就是更新不及时。百度蜘蛛喜欢新鲜的地图。所以,怎么让帝国cms自动更新地图?这就涉及到帝国cms怎么做网站地图的进阶问题了。

你可以利用帝国的计划任务。在后台找到“计划任务”,新建一个任务,类型选“执行PHP代码”。代码内容就是调用上面那个模板生成的页面,或者更狠一点,直接写个脚本去curl请求一下地图页面,触发更新。

不过,我觉得最省事的办法,还是买个靠谱的插件。市面上有些插件,比如“帝国cms生成sitemap插件”,价格一般在几十块到一百多块不等。别贪便宜买那种几块钱的,很多都是盗版的,带后门。我上次花80块买的一个,虽然界面丑了点,但胜在稳定,支持自动更新,还支持百度主动推送。

这里再啰嗦一句,地图生成后,一定要去百度搜索资源平台提交。别以为生成了就完事了,不提交,蜘蛛可能半年都不来一次。我有个朋友,地图生成了,死活不提交,结果网站收录惨淡,急得半夜给我打电话。

还有,地图里的链接,一定要是最终的URL,别搞动态参数。比如?id=123这种,最好转换成伪静态。如果转换不了,那就用动态链接,但要在robots.txt里允许抓取。

最后,检查一下地图的格式。XML头部声明有没有?编码是不是UTF-8?这些细节百度很在意。我之前就遇到过,编码不对,百度直接报错,说地图无效。

总之,帝国cms怎么做网站地图,核心就两点:一是代码写对,表名别搞错;二是自动化更新,别手动搞。如果你实在搞不定代码,那就花钱买插件,省时省力。别为了省那几十块钱,耽误了网站收录,那才叫亏大了。

希望这点经验能帮到正在纠结帝国cms怎么做网站地图的你。如果有其他问题,欢迎在评论区留言,我看到都会回。毕竟,建站这条路,大家都是这么摸爬滚打过来的,互相帮衬点,总比一个人瞎折腾强。