dede栏目头部模板如何修改与调用?

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

这个模板文件主要用于控制栏目(频道)列表页的显示样式,包括页面的 HTML 结构、CSS 样式、JavaScript 脚本以及如何调用该栏目下的文章列表。

dede栏目头部模板
(图片来源网络,侵删)

核心概念

  1. 模板文件位置: 栏目头部模板文件位于你的 DedeCMS 安装目录下的 /templets/ 文件夹内,具体文件名取决于你当前使用的模板风格。

    • 默认路径/templets/default/
    • 文件名:通常是 list_栏目ID.htm 或者 list_default.htm
      • list_栏目ID.htm:如果你为某个特定的栏目设置了独立的模板,DedeCMS 会优先调用这个文件。
      • list_default.htm:如果某个栏目没有指定独立模板,那么系统会默认调用这个通用模板。
  2. 模板引擎: DedeCMS 使用自己的模板引擎,通过特定的标签(如 {dede:...})来获取数据库内容并动态生成 HTML 页面。


模板文件基本结构

一个典型的栏目头部模板文件结构如下,我们将其分为几个关键部分来讲解:

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">{dede:field.title/}_{dede:global.cfg_webname/}</title>
    <meta name="keywords" content="{dede:field name='keywords'/}">
    <meta name="description" content="{dede:field name='description'/}">
    <!-- 引入CSS文件 -->
    <link rel="stylesheet" href="{dede:global.cfg_cmsurl/}/templets/{dede:global.cfg_templets_skin/}/css/style.css">
</head>
<body>
    <!-- 1. 网站头部 -->
    {dede:include filename="head.htm"/}
    <!-- 2. 核心内容区 -->
    <div class="main-container">
        <!-- 2.1 左侧内容区 (文章列表) -->
        <div class="content-wrap">
            <!-- 2.1.1 当前栏目信息 -->
            <div class="channel-nav">
                <h1>{dede:field.typename/}</h1>
                <p>{dede:field.description/}</p>
            </div>
            <!-- 2.1.2 文章列表循环开始 -->
            {dede:list pagesize='10'}
            <article class="post-item">
                <h2><a href="[field:arcurl/]">[field:title/]</a></h2>
                <div class="post-meta">
                    <span>发布时间:[field:pubdate function="MyDate('Y-m-d H:i',@me)"/]</span>
                    <span>作者:[field:author/]</span>
                    <span>浏览:[field:click/]</span>
                </div>
                <div class="post-content">
                    [field:description function='cn_substr(@me, 200)'/]...
                </div>
            </article>
            {/dede:list}
            <!-- 2.1.3 文章分页 -->
            <div class="pagination">
                {dede:pagelist listsize='5' itempage='2'/}
            </div>
        </div>
        <!-- 2.2 右侧边栏 -->
        <div class="sidebar">
            {dede:include filename="side.htm"/}
        </div>
    </div>
    <!-- 3. 网页底部 -->
    {dede:include filename="footer.htm"/}
    <!-- 引入JS文件 -->
    <script src="{dede:global.cfg_cmsurl/}/templets/{dede:global.cfg_templets_skin/}/js/jquery.min.js"></script>
</body>
</html>

核心标签详解

<head> 标签中的 SEO 信息

这部分用于设置页面的标题、关键词和描述,对 SEO 非常重要。

dede栏目头部模板
(图片来源网络,侵删)
  • {dede:field.title/}:获取当前栏目的名称。
  • {dede:global.cfg_webname/}:获取网站后台设置的网站名称。
  • {dede:field name='keywords'/}:获取当前栏目在后台设置的关键词。
  • {dede:field name='description'/}:获取当前栏目在后台设置的描述。

栏目信息调用

这部分用于显示当前栏目的名称和简介。

  • {dede:field.typename/}:显示当前栏目的名称。
  • {dede:field.description/}:显示当前栏目的描述。

文章列表循环 ({dede:list})

这是整个模板的核心,它通过一个循环来输出当前栏目下的文章列表。

  • 标签格式{dede:list pagesize='10'}...{/dede:list}
  • 常用属性
    • pagesize='10':设置每页显示的文章数量,你可以在后台“栏目管理”中为每个栏目单独设置,也可以在这里覆盖。
  • 内部常用字段(用 [field:字段名/] 调用):
    • [field:title/]
    • [field:arcurl/]:文章链接(URL)。
    • [field:pubdate/]:文章发布时间,通常会配合 function 进行格式化,[field:pubdate function="MyDate('Y-m-d',@me)"/] 显示为 2025-10-27
    • [field:description/]:通常会配合 function 截取指定长度,[field:description function='cn_substr(@me, 200)'/] 截取前200个字符。
    • [field:click/]:文章的点击量(浏览次数)。
    • [field:writer/]:文章作者。
    • [field:litpic/]:文章的缩略图。

分页标签 ({dede:pagelist})

当文章数量超过 pagesize 设置的值时,就会出现分页。

  • 标签格式{dede:pagelist listsize='5' itempage='2'/}
  • 常用属性
    • listsize='5':显示页码的数量(1 2 3 4 5 ...)。
    • itempage='2':显示“上一页”和“下一页”的文本链接。
    • listitem=''/:可以自定义显示哪些分页元素,listitem='index,pre,end,next,pageno'

模板包含标签 ({dede:include})

用于引入其他模板文件,实现代码复用,方便维护。

dede栏目头部模板
(图片来源网络,侵删)
  • 标签格式{dede:include filename='head.htm'/}
  • 常见用途
    • head.htm:网站头部,通常包含 logo、主导航菜单等。
    • footer.htm:网站底部,通常包含版权信息、备案号等。
    • side.htm:侧边栏,通常包含热门文章、最新评论、栏目导航等。

如何自定义和修改

  1. 备份原文件:在修改任何模板文件之前,请务必备份原始的 list_default.htm 文件,以防修改出错无法恢复。
  2. 理解 CSS 类名:修改 HTML 结构时,要尽量保持原有的 CSS 类名(如 .content-wrap, .post-item),这样只需修改 CSS 文件就能改变样式,而不用大改模板,如果需要新增类名,请在对应的 CSS 文件中定义样式。
  3. 修改列表显示:要改变文章列表的显示样式(从单列变为多列,或者添加缩略图),你需要修改 {dede:list} 循环内部的 HTML 结构,并可能需要调整 CSS。
  4. 创建独立模板:如果你希望某个栏目(如“公司新闻”)的列表页样式与其他栏目(如“产品展示”)不同,最好的方法是:
    • 复制 list_default.htm 文件,重命名为 list_栏目ID.htm(如果“公司新闻”的栏目ID是 3,就命名为 list_3.htm)。
    • 然后修改这个新文件,它将只对“公司新闻”这个栏目生效。

常见问题与技巧

  • Q: 为什么我修改了模板文件,前台页面没有变化?

    • A: 1. 清除缓存:DedeCMS 有强大的缓存机制,请务必进入后台“系统” -> “一键更新站点” -> “更新HTML” -> “更新栏目HTML”,或者直接删除 /data/cache/ 目录下的缓存文件,2. 检查文件名:确认你修改的是 list_栏目ID.htm 还是 list_default.htm,确保路径正确,3. 检查标签语法:确保 {dede:...} 标签没有拼写错误。
  • Q: 如何在列表页显示文章的缩略图?

    • A: 在 {dede:list} 循环内部添加 <img> 标签。
      {dede:list}
      <article>
      <a href="[field:arcurl/]">
          <img src="[field:litpic/]" alt="[field:title/]">
      </a>
      <h2><a href="[field:arcurl/]">[field:title/]</a></h2>
      <p>[field:description function='cn_substr(@me, 150)'/]...</p>
      </article>
      {/dede:list}
  • Q: 如何调用子栏目的列表?

    • A: 使用 {dede:channel} 标签来循环调用子栏目,然后在每个子栏目内部再嵌套一个 {dede:list} 来调用该子栏目的文章,这通常用于制作一个“大栏目”下包含多个“小栏目”的布局。

希望这份详细的指南能帮助你完全掌握 DedeCMS 栏目头部模板的制作和修改!

-- 展开阅读全文 --
头像
绿织梦综合测试答案是什么?
« 上一篇 前天
C语言和C++语言到底有什么区别?
下一篇 » 前天

相关文章

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

目录[+]