下面我将为你详细讲解如何创建和配置 DedeCMS 的网站地图模板,包括普通地图和Google Sitemap两种常见类型。
准备工作:开启地图生成功能
在开始制作模板之前,请确保你的网站已经开启了地图生成功能。
- 登录 DedeCMS 后台。
- 进入 “系统” -> “系统基本参数” -> “核心设置”。
- 找到 “是否启用网站地图” 选项,将其设置为 “是”。
- 保存设置。
第一步:创建地图模板文件
这是最核心的一步,你需要在 DedeCMS 的模板目录下创建一个或多个新的模板文件。
- 登录你的 FTP 或主机文件管理器。
- 进入 DedeCMS 的安装目录,找到
templets文件夹。 - 在
templets文件夹中,新建一个名为map的文件夹(如果还没有的话)。 - 在
templets/map/文件夹下,创建一个新的 HTML 文件,例如命名为sitemap.htm。
这个 sitemap.htm 文件就是你的地图模板,你可以用任何文本编辑器(如 VS Code, Sublime Text, Notepad++)来编辑它。
第二步:编写地图模板代码 (sitemap.htm)
下面提供几个不同类型的地图模板代码,你可以根据自己的需求选择和修改。

普通网站地图 (HTML格式)
这种地图主要给用户浏览,方便他们快速找到所有栏目和内容。
代码示例 (templets/map/sitemap.htm):

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">{dede:global.cfg_webname/} - 网站地图</title>
<meta name="keywords" content="{dede:global.cfg_keywords/}" />
<meta name="description" content="{dede:global.cfg_description/}" />
<style>
body { font-family: Arial, sans-serif; line-height: 1.6; margin: 0; padding: 20px; background-color: #f4f4f4; }
.container { max-width: 960px; margin: 0 auto; background: #fff; padding: 20px; border-radius: 8px; box-shadow: 0 0 10px rgba(0,0,0,0.1); }
h1 { color: #333; text-align: center; border-bottom: 2px solid #007bff; padding-bottom: 10px; }
h2 { color: #0056b3; font-size: 1.2em; margin-top: 20px; }
ul { list-style-type: none; padding-left: 20px; }
li { margin-bottom: 8px; }
a { color: #007bff; text-decoration: none; }
a:hover { text-decoration: underline; }
.footer { text-align: center; margin-top: 30px; color: #777; font-size: 0.9em; }
</style>
</head>
<body>
<div class="container">
<h1>{dede:global.cfg_webname/} 网站地图</h1>
<p>本站地图更新于:{dede:tagname runphp='yes'}@me = date('Y-m-d H:i:s');{/dede:tagname}</p>
<!-- 一级栏目列表 -->
<h2>主要栏目</h2>
<ul>
{dede:channel type='top' row='50'}
<li><a href="[field:typelink/]">[field:typename/]</a></li>
{/dede:channel}
</ul>
<!-- 二级栏目列表 -->
<h2>子栏目</h2>
{dede:channelartlist type='son' row='50'}
<h3>[field:typename/]</h3>
<ul>
{dede:type}
<li><a href="[field:typelink/]">[field:typename/]</a></li>
{/dede:type}
</ul>
{/dede:channelartlist}
<!-- 最新文章列表 -->
<h2>最新文章</h2>
<ul>
{dede:arclist titlelen='48' row='30' orderby='pubdate'}
<li><a href="[field:arcurl/]">[field:title/]</a></li>
{/dede:arclist}
</ul>
<div class="footer">
<p>Copyright © {dede:global.cfg_webname/} All Rights Reserved.</p>
<p><a href="/sitemap.html">返回网站地图</a></p>
</div>
</div>
</body>
</html>
代码解析:
{dede:global.cfg_webname/}: 调用网站名称。{dede:tagname runphp='yes'}@me = date('Y-m-d H:i:s');{/dede:tagname}: 这段代码用于显示当前时间,表示地图的生成时间。{dede:channel type='top' row='50'}: 核心标签,调用顶级栏目(一级栏目),row='50'表示最多调用50个。{dede:channelartlist type='son' row='50'}: 核心标签,循环调用所有顶级栏目,并在每个栏目下显示其子栏目(二级栏目)。{dede:type}: 在channelartlist循环内部,用于获取当前栏目的子栏目。{dede:arclist titlelen='48' row='30' orderby='pubdate'}: 核心标签,调用最新发布的30篇文章,标题长度限制为48个字符,按发布时间排序。
Google Sitemap (XML格式)
这种地图是给搜索引擎(如 Google, Bing, 百度)爬虫使用的,告诉它们网站有哪些页面可以收录。

代码示例 (templets/map/sitemap.xml):
注意:这个文件的后缀是 .xml。
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<!-- 首页 -->
<url>
<loc>{dede:global.cfg_basehost/}</loc>
<lastmod>{dede:tagname runphp='yes'}@me = date('Y-m-d');{/dede:tagname}</lastmod>
<changefreq>daily</changefreq>
<priority>1.0</priority>
</url>
<!-- 普通栏目页 -->
{dede:channel type='top' row='100'}
<url>
<loc>[field:typelink/]</loc>
<lastmod>{dede:tagname runphp='yes'}@me = date('Y-m-d');{/dede:tagname}</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
{/dede:channel}
<!-- 文章页 -->
{dede:arclist row='5000' orderby='pubdate'}
<url>
<loc>[field:arcurl/]</loc>
<lastmod>[field:pubdate function='MyDate('Y-m-d', @me)'/]</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
{/dede:arclist}
</urlset>
代码解析:
<?xml ... ?>: XML 声明,必须放在第一行。<urlset xmlns="...">: 定义XML命名空间,这是Google Sitemap的标准格式。<loc>: 必须,页面的绝对URL。<lastmod>: 必须,页面的最后修改日期,格式为YYYY-MM-DD。<changefreq>: 可选,页面更新频率(如always,hourly,daily,weekly,monthly,yearly,never),这只是一个提示,搜索引擎不一定会遵循。<priority>: 可选,页面的相对优先级(0.0 到 1.0),首页为1.0,其他页面递减。
第三步:在后台生成地图
模板文件创建好后,就可以在后台生成地图页面了。
- 登录 DedeCMS 后台。
- 进入 “栏目” -> “网站地图”。
- 你会看到刚才创建的模板
