dede网站地图模板如何设置?

99ANYc3cd6
预计阅读时长 29 分钟
位置: 首页 DEDE建站 正文

DedeCMS 自带了一个简单的网站地图功能,但通常需要自定义模板才能达到更好的效果,我们将分为两个部分:

dede 网站地图模版
(图片来源网络,侵删)
  1. 基础篇:使用 DedeCMS 自带的网站地图功能
  2. 进阶篇:制作更强大的自定义网站地图模板

基础篇:使用 DedeCMS 自带的网站地图功能

这是最简单快捷的方法,适合快速生成一个基础的 XML 和 HTML 网站地图。

步骤 1:开启网站地图功能

  1. 登录你的 DedeCMS 后台。
  2. 进入 “系统” -> “系统基本参数” -> “核心设置”
  3. 找到 “是否启用网站地图” 选项,将其设置为 “是”
  4. 保存设置。

步骤 2:生成网站地图

  1. 在后台左侧菜单中找到 “首页” -> “更新主页HTML”
  2. 在页面下方,你会看到 “生成网站地图” 的选项。
  3. 点击 “开始生成”,DedeCMS 会自动生成两个文件:
    • sitemap.xml:标准的 XML 格式地图,主要提交给搜索引擎(如百度、谷歌)。
    • sitemap.html:HTML 格式的地图,主要方便访客浏览。

步骤 3:提交给搜索引擎

生成后,你需要将 sitemap.xml 的地址提交给各大搜索引擎。

  • 百度站长平台:在“站点属性” -> “普通收录” -> “Sitemap” 中提交你的 sitemap.xml 地址(https://www.yourdomain.com/sitemap.xml)。
  • Google Search Console:在 “Sitemaps” 部分提交你的 sitemap.xml 地址。

优点:简单、快速,无需代码。 缺点:功能有限,样式和内容都比较固定,无法高度自定义。


进阶篇:制作更强大的自定义网站地图模板

如果你对地图的样式、内容(如包含栏目、自定义单页、文章标签等)有更高的要求,就需要使用 DedeCMS 的模板功能来自定义地图。

dede 网站地图模版
(图片来源网络,侵删)

第一步:创建模板文件

在 DedeCMS 的模板目录(通常是 /templets//templets/default/)下,创建一个新的文件夹,sitemap,用于存放地图模板,然后在这个文件夹里创建两个文件:

  1. sitemap.xml:用于生成 XML 格式的地图。
  2. sitemap.html:用于生成 HTML 格式的地图。

第二步:编写 sitemap.xml 模板代码

这个模板遵循 Sitemap 协议,主要用于搜索引擎,你需要将以下代码保存到 /templets/sitemap/sitemap.xml

{dede:global.cfg_xmlname/}
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
    <!-- 首页 -->
    <url>
        <loc>https://www.yourdomain.com/</loc>
        <lastmod>{dede:arclist row=1 titlelen='24'}[field:pubdate function='strftime("%Y-%m-%d",@me)'/]{/dede:arclist}</lastmod>
        <changefreq>daily</changefreq>
        <priority>1.0</priority>
    </url>
    <!-- 一级栏目 -->
    {dede:channel type='top' row='100'}
    <url>
        <loc>https://www.yourdomain.com[field:typelink/]</loc>
        <lastmod>{dede:arclist row=1 typeid='[id]'}[field:pubdate function='strftime("%Y-%m-%d",@me)'/]{/dede:arclist}</lastmod>
        <changefreq>weekly</changefreq>
        <priority>0.8</priority>
    </url>
    {/dede:channel}
    <!-- 二级栏目 (如果需要,可以嵌套 channel 标签) -->
    {dede:channel type='son' row='100' typeid='1'} <!-- typeid='1' 指定顶级栏目ID -->
    <url>
        <loc>https://www.yourdomain.com[field:typelink/]</loc>
        <lastmod>{dede:arclist row=1 typeid='[id]'}[field:pubdate function='strftime("%Y-%m-%d",@me)'/]{/dede:arclist}</lastmod>
        <changefreq>weekly</changefreq>
        <priority>0.7</priority>
    </url>
    {/dede:channel}
    <!-- 文章页 (这里只列出最新的一些文章,全量的话会非常巨大,不适合放在XML Sitemap里) -->
    {dede:arclist row='500' orderby='pubdate'}
    <url>
        <loc>https://www.yourdomain.com[field:arcurl/]</loc>
        <lastmod>[field:pubdate function='strftime("%Y-%m-%d",@me)'/]</lastmod>
        <changefreq>monthly</changefreq>
        <priority>0.6</priority>
    </url>
    {/dede:arclist}
    <!-- 自定义单页 (如关于我们、联系我们等) -->
    {dede:sql sql="SELECT * FROM dede_arctype WHERE ispart=0 AND channeltype=-1"}
    <url>
        <loc>https://www.yourdomain.com[field:typedir/]</loc>
        <lastmod>{dede:arclist row=1 typeid='[id]'}[field:pubdate function='strftime("%Y-%m-%d",@me)'/]{/dede:arclist}</lastmod>
        <changefreq>monthly</changefreq>
        <priority>0.5</priority>
    </url>
    {/dede:sql}
</urlset>

代码解释

  • {dede:global.cfg_xmlname/}:获取网站名称。
  • <urlset>:Sitemap 的根标签。
  • <url>:每个页面一个 <url>
  • <loc>:页面的绝对 URL。
  • <lastmod>:页面的最后更新时间,使用 strftime 函数格式化。
  • <changefreq>:页面更新频率(如 daily, weekly, monthly)。
  • <priority>:页面权重(0.0 - 1.0)。

注意:XML Sitemap 通常只包含最重要的页面(首页、栏目页、关键文章页),而不是所有文章,否则文件会过大,对于大型网站,建议按栏目生成多个 Sitemap 文件,然后创建一个 Sitemap 索引文件。

dede 网站地图模版
(图片来源网络,侵删)

第三步:编写 sitemap.html 模板代码

这个模板是给用户看的,所以样式和结构更重要,将以下代码保存到 /templets/sitemap/sitemap.html

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">网站地图 - {dede:global.cfg_webname/}</title>
    <meta name="description" content="{dede:global.cfg_webname/}网站地图,包含所有栏目和文章页面。">
    <style>
        body { font-family: Arial, sans-serif; line-height: 1.6; margin: 0; padding: 20px; background-color: #f4f4f4; }
        .container { max-width: 800px; 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: #555; 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: 12px; }
    </style>
</head>
<body>
    <div class="container">
        <h1>网站地图 - {dede:global.cfg_webname/}</h1>
        <h2><a href="[field:typelink/]" title="[field:typename/]">首页</a></h2>
        <h2>主要栏目</h2>
        <ul>
            {dede:channel type='top' row='100'}
            <li><a href="[field:typelink/]" title="[field:typename/]">[field:typename/]</a></li>
            {/dede:channel}
        </ul>
        <h2>文章列表</h2>
        <ul>
            {dede:arclist row='100' titlelen='50' orderby='pubdate'}
            <li><a href="[field:arcurl/]" title="[field:title/]">[field:title/]</a> ([field:pubdate function='strftime("%Y-%m-%d",@me)'/])</li>
            {/dede:arclist}
        </ul>
        <h2>自定义页面</h2>
        <ul>
            {dede:sql sql="SELECT * FROM dede_arctype WHERE ispart=0 AND channeltype=-1"}
            <li><a href="[field:typedir/]" title="[field:typename/]">[field:typename/]</a></li>
            {/dede:sql}
        </ul>
        <div class="footer">
            <p>本网站地图由 <a href="[field:global.cfg_basehost/]" title="{dede:global.cfg_webname/}">{dede:global.cfg_webname/}</a> 自动生成。</p>
            <p>最后更新时间:{dede:tagname runphp='yes'}@me = date('Y-m-d H:i:s');{/dede:tagname}</p>
        </div>
    </div>
</body>
</html>

代码解释

  • 这里使用了标准的 HTML 和 CSS,样式清晰简洁。
  • {dede:channel}{dede:arclist} 标签用于循环输出栏目和文章列表。
  • [field:xxx/] 用于获取字段的值,如 [field:typelink/](栏目链接)、[field:title/])等。

第四步:生成自定义地图

模板创建好后,你需要通过 DedeCMS 的“更新主页HTML”功能来生成它。

  1. 进入后台 “首页” -> “更新主页HTML”
  2. 在页面中找到 “自定义地图” 或类似选项(不同版本 DedeCMS 可能有差异,通常在“生成网站地图”附近)。
  3. “选择主页模板” 旁边的 “自定义地图模板” 中,选择你刚刚创建的模板:
    • 对于 XML 地图,选择 sitemap 文件夹下的 sitemap.xml
    • 对于 HTML 地图,选择 sitemap 文件夹下的 sitemap.html
  4. 设置好生成目录(通常是网站根目录)。
  5. 点击 “开始生成”

生成成功后,你就可以通过 https://www.yourdomain.com/sitemap.xmlhttps://www.yourdomain.com/sitemap.html 访问你的自定义网站地图了。


总结与最佳实践

  1. XML vs HTML

    • XML Sitemap:给搜索引擎看的,确保它包含所有重要页面,结构清晰,符合协议。
    • HTML Sitemap:给用户看的,注重可读性和美观,方便用户快速找到所需内容。
  2. 性能考虑

    • 对于大型网站,{dede:arclist} 不要设置 row 过大,否则生成地图时可能会超时或导致服务器负载过高,可以考虑按栏目分批生成。
    • 定期清理过期的链接。
  3. 保持更新

    每当你更新了网站内容(如发布新文章、新增栏目),最好重新生成一次网站地图,并及时提交给搜索引擎。

通过以上步骤,你就可以制作出既符合搜索引擎要求,又对用户友好的专业级网站地图了。

-- 展开阅读全文 --
头像
织梦CMS如何设置网站主页?
« 上一篇 03-18
dede系统tag静态化如何实现?
下一篇 » 03-18

相关文章

取消
微信二维码
支付宝二维码