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

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

DedeCMS 默认会生成一个简单的 XML 格式的 sitemap,但通常我们需要一个更友好的 HTML 版本,方便用户浏览和搜索引擎抓取,下面我将分为 HTML 版本XML 版本 两种来讲解,并提供完整的代码和制作步骤。

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

HTML 版本网站地图(面向用户和搜索引擎)

这是最常见的一种,通常命名为 sitemap.html,放在网站根目录,它清晰地列出了网站的栏目、文章和单页,方便用户导航。

第 1 步:创建模板文件

  1. 在你的 DedeCMS 安装目录下,找到 /templets/ 文件夹。
  2. /templets/ 文件夹内新建一个文件,命名为 sitemap.htm
  3. 用代码编辑器(如 VS Code, Sublime Text, Notepad++)打开 sitemap.htm 文件,将下面的代码复制进去。

/templets/sitemap.htm 完整代码:

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">网站地图 - {dede:global.cfg_webname/}</title>
    <meta name="description" content="{dede:global.cfg_webname/}网站地图,包含所有栏目和文章列表,方便您快速找到所需内容。" />
    <meta name="keywords" content="网站地图,sitemap,{dede:global.cfg_webname/}" />
    <meta name="author" content="{dede:global.cfg_webname/}" />
    <style>
        body { font-family: 'Microsoft YaHei', Arial, sans-serif; line-height: 1.6; margin: 0; padding: 20px; background-color: #f4f4f4; color: #333; }
        .container { max-width: 1200px; margin: 0 auto; background: #fff; padding: 20px; border-radius: 8px; box-shadow: 0 2px 4px rgba(0,0,0,0.1); }
        h1 { text-align: center; color: #2c3e50; border-bottom: 2px solid #3498db; padding-bottom: 10px; }
        h2 { color: #34495e; margin-top: 30px; }
        .section { margin-bottom: 30px; }
        .section ul { list-style: none; padding-left: 20px; }
        .section ul li { margin-bottom: 8px; }
        .section ul li a { text-decoration: none; color: #3498db; transition: color 0.3s; }
        .section ul li a:hover { color: #e74c3c; text-decoration: underline; }
        .footer { text-align: center; margin-top: 40px; padding-top: 20px; border-top: 1px solid #eee; color: #777; font-size: 0.9em; }
    </style>
</head>
<body>
    <div class="container">
        <h1>网站地图 - {dede:global.cfg_webname/}</h1>
        <!-- 单页文档部分 -->
        <div class="section">
            <h2>单页文档</h2>
            {dede:sql sql="SELECT * FROM dede_arctype WHERE topid=0 AND ishidden<>1 ORDER BY sortrank"}
            <ul>
                <li><a href="[field:typedir/]">[field:typename/]</a></li>
            </ul>
            {/dede:sql}
        </div>
        <!-- 栏目及文章部分 -->
        <div class="section">
            <h2>栏目及文章列表</h2>
            {dede:channelartlist row='100' typeid='0'}
                <h3>{dede:field name='typename'/}</h3>
                <ul>
                    {dede:sql sql="SELECT * FROM dede_archives WHERE typeid=~id~ AND arcrank > -1 ORDER BY pubdate DESC"}
                        <li><a href="[field:arcurl/]">[field:title/]</a></li>
                    {/dede:sql}
                </ul>
            {/dede:channelartlist}
        </div>
        <div class="footer">
            <p>本地图由 <a href="{dede:global.cfg_cmsurl/}">{dede:global.cfg_webname/}</a> 自动生成。</p>
            <p>© {dede:php}echo date('Y');{/dede:php} {dede:global.cfg_webname/} All Rights Reserved.</p>
        </div>
    </div>
</body>
</html>

第 2 步:代码解析

  • HTML 结构:标准的 HTML5 结构,包含 headbodyhead 中设置了页面标题、描述、关键词,并内嵌了一些 CSS 样式,让页面看起来更美观。
  • 单页文档
    {dede:sql sql="SELECT * FROM dede_arctype WHERE topid=0 AND ishidden<>1 ORDER BY sortrank"}

    这句 SQL 查询了顶级栏目(topid=0)并且没有隐藏(ishidden<>1)的栏目,这些通常被用作“关于我们”、“联系方式”等单页。

  • 栏目及文章列表
    {dede:channelartlist row='100' typeid='0'}
        <h3>{dede:field name='typename'/}</h3>
        <ul>
            {dede:sql sql="SELECT * FROM dede_archives WHERE typeid=~id~ AND arcrank > -1 ORDER BY pubdate DESC"}
                <li><a href="[field:arcurl/]">[field:title/]</a></li>
            {/dede:sql}
        </ul>
    {/dede:channelartlist}
    • channelartlist:循环获取顶级栏目(typeid='0'),row='100' 限制最大数量。
    • ~id~:这是 channelartlist 的一个特殊用法,代表当前循环的栏目 ID。
    • dede_archives:DedeCMS 存储文章的表。
    • arcrank > -1:这个条件很重要,它排除了所有被设置为“仅动态”、“草稿”或“待审核”的文章(arcrank 为负数),只显示正常发布的文章。
    • [field:arcurl/][field:title/]:分别调用文章的链接和标题。

第 3 步:生成静态页面

  1. 登录你的 DedeCMS 后台。
  2. 进入 “生成” -> “HTML更新”
  3. 在页面左侧找到 “HTML地图” 选项。
  4. 点击 “开始生成HTML地图”
  5. 系统会提示生成成功,你可以在网站根目录下找到 sitemap.html 文件。

XML 版本网站地图(仅面向搜索引擎)

XML Sitemap 是一种标准的格式,专门为搜索引擎(如 Google, Bing)设计,告诉它们网站有哪些页面以及它们的更新频率和重要性。

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

第 1 步:创建模板文件

  1. 同样在 /templets/ 文件夹内新建一个文件,命名为 sitemap.xml
  2. 打开 sitemap.xml 文件,复制以下代码。

/templets/sitemap.xml 完整代码:

{dede:global.cfg_cmsurl/}
{dede:sql sql="SELECT id,typedir FROM dede_arctype WHERE topid=0 AND ishidden<>1"}
<url>
    <loc>[field:typedir/]</loc>
    <lastmod>{dede:php}echo date('Y-m-d');{/dede:php}</lastmod>
    <changefreq>weekly</changefreq>
    <priority>0.8</priority>
</url>
{/dede:sql}
{dede:channelartlist row='100' typeid='0'}
    {dede:sql sql="SELECT id,typedir FROM dede_arctype WHERE topid=~id~ AND ishidden<>1"}
    <url>
        <loc>[field:typedir/]</loc>
        <lastmod>{dede:php}echo date('Y-m-d');{/dede:php}</lastmod>
        <changefreq>weekly</changefreq>
        <priority>0.7</priority>
    </url>
    {/dede:sql}
    {dede:sql sql="SELECT id,arc,title FROM dede_archives WHERE typeid=~id~ AND arcrank > -1 ORDER BY pubdate DESC"}
    <url>
        <loc>[field:arcurl/]</loc>
        <lastmod>[field:pubdate function="MyDate('Y-m-d', @me)"/]</lastmod>
        <changefreq>monthly</changefreq>
        <priority>0.6</priority>
    </url>
    {/dede:sql}
{/dede:channelartlist}

第 2 步:代码解析

  • XML 声明:文件开头必须有 <?xml version="1.0" encoding="UTF-8"?>注意:在 DedeCMS 模板中,<?php ... ?> 标签可能会被系统过滤,所以需要使用 {dede:php} ... {/dede:php} 标签来执行 PHP 代码,上面的代码中,lastmod 日期就是用这种方式动态生成的。
  • <urlset>:标准的 Sitemap 应该包含 <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">,但 DedeCMS 的模板引擎在生成时会自动处理,所以这里可以省略,最终生成的文件会包含它。
  • 栏目 URL:分别查询顶级栏目和二级栏目,并为每个栏目生成一个 <url> 条目。
  • 文章 URL:在 channelartlist 循环内部,查询每个栏目下的所有文章,并为每篇文章生成一个 <url> 条目。
  • 标签说明
    • <loc>:页面的绝对 URL。
    • <lastmod>:页面的最后修改日期。
    • <changefreq>:页面的更新频率(如 always, hourly, daily, weekly, monthly, yearly, never),这里只是示例,实际值应根据你的网站更新频率来定。
    • <priority>:页面的相对优先级(0.0 到 1.0),首页通常为 1.0,栏目页次之,文章页再次之。

第 3 步:生成静态页面

  1. 登录 DedeCMS 后台。
  2. 进入 “生成” -> “HTML更新”
  3. 在页面左侧找到 “HTML地图” 选项。
  4. 点击 “开始生成HTML地图”
  5. 生成后,在网站根目录下找到 sitemap.xml 文件。

提交网站地图

生成 sitemap.htmlsitemap.xml 后,你需要将它们提交给搜索引擎。

  1. Google Search Console

    • 登录你的 Google Search Console。
    • 选择对应的网站。
    • 在左侧菜单中找到 “Sitemaps”(网站地图)。
    • 点击 “添加新的网站地图”
    • 输入你的网站地图地址,https://www.yourdomain.com/sitemap.xml,然后点击 “提交”
  2. Bing Webmaster Tools

    dede网站地图模版
    (图片来源网络,侵删)
    • 过程与 Google 类似,登录 Bing Webmaster Tools,找到“Sitemaps”部分,然后提交你的 sitemap.xml 文件。
  3. Robots.txt 文件

    • 建议在 robots.txt 文件中引用你的 XML Sitemap,方便搜索引擎发现,在你的网站根目录下的 robots.txt 文件中添加一行:
      Sitemap: https://www.yourdomain.com/sitemap.xml
类型 文件名 位置 用途 生成方式
HTML 地图 sitemap.htm /templets/ 面向用户,方便浏览和导航 后台“生成” -> “HTML更新” -> “HTML地图”
XML 地图 sitemap.xml /templets/ 面向搜索引擎,提高抓取效率 后台“生成” -> “HTML更新” -> “HTML地图”

通过以上步骤,你就可以为你的 DedeCMS 网站创建一个完整且专业的网站地图了。

-- 展开阅读全文 --
头像
织梦模板名字怎么改?
« 上一篇 昨天
织梦自定义信息类型怎么用?
下一篇 » 昨天

相关文章

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