Discuz! 的模板系统非常灵活,其首页模板主要由 PHP 文件HTML 模板文件 两部分组成,它们协同工作来生成最终的页面。

discuz 首页模板 位置
(图片来源网络,侵删)

核心文件位置

Discuz! 的模板文件都存放在 static/ 目录下,而 PHP 控制文件则存放在 source/ 目录下。

PHP 控制文件 (逻辑层)

这是决定首页显示哪些内容、如何调用数据的“大脑”,首页的 PHP 文件位于:

/source/module/home/home.php

作用:

  • 处理用户请求。
  • 调用相应的函数从数据库获取数据(如帖子、公告、统计信息等)。
  • 将处理好的数据传递给模板引擎。
  • 最终加载并渲染 HTML 模板文件。

HTML 模板文件 (表现层)

这是定义首页实际布局和样式的“骨架”,首页的模板文件位于:

discuz 首页模板 位置
(图片来源网络,侵删)
/static/html/home/{你的模板目录名}/index.htm

重要说明:

  • {你的模板目录名}:这是一个变量,代表你当前正在使用的模板,Discuz! 允许用户切换不同的模板主题。
    • 默认模板:通常是 default
    • 第三方模板:如果你安装了其他模板,目录名就是模板的名称,mobile (移动端模板), theme_xxx 等。

如何找到你的模板目录名?

  1. 登录你的 Discuz! 后台。
  2. 进入 【界面】 -> 【风格管理】
  3. 在风格列表中,查看“首页风格”那一列,你当前正在使用的风格的“风格名”就是你的模板目录名。

首页各模块的模板文件位置

首页通常由多个模块组成,如:顶部导航、公告栏、帖子列表、侧边栏等,这些模块的模板代码通常不是全部写在一个 index.htm 文件里,而是被拆分成了多个子模板,通过 PHP 文件进行组合。

这些子模板文件和 index.htm 在同一个目录下:

discuz 首页模板 位置
(图片来源网络,侵删)
/static/html/home/{你的模板目录名}/
├── index.htm         (首页主框架文件)
├-- header.htm        (页面头部,包含 logo、导航等)
├-- footer.htm        (页面底部)
├-- forumlist.htm     (板块列表)
├-- announcement.htm  (公告栏)
├-- space_list.htm    (动态/空间列表)
├-- portal_list.htm   (门户文章列表,如果开启了门户)
└-- ... (其他模块)

工作流程:

  1. 当你访问网站首页时,/source/module/home/home.php 文件被执行。
  2. PHP 文件会加载主模板文件 /static/html/home/{你的模板目录名}/index.htm
  3. index.htm 文件中,会使用 Discuz! 的模板标签(如 {template header})来引入其他的子模板文件。
  4. 所有子模板的内容被拼接到主框架中,生成完整的 HTML 页面并返回给浏览器。

如何修改首页模板?

了解了文件位置后,修改首页就变得非常清晰了。

简单的样式或文字修改

比如你想修改网站标题、更换 Logo 或调整某个区域的背景色。

  1. 确定模板目录:进入后台【风格管理】,确认你当前使用的模板目录名(default)。
  2. 找到并编辑主模板文件
    • 使用 FTP 或文件管理器,连接到你的服务器。
    • 进入目录:/static/html/home/{你的模板目录名}/ (/static/html/home/default/)。
    • 下载 index.htm 文件到本地,用 VS Code、Dreamweaver 等代码编辑器打开。
  3. 进行修改
    • 修改网站标题:通常在 header.htm 文件中,找到类似 <title>{if !empty($navtitle)}{$navtitle} - {/if}{if empty($nobbname)}{$_G['bbname']} - {/if}{lang homepage}</title> 的代码。
    • 更换 Logo:在 header.htm 中找到 <img src="{IMGDIR}/common/logo.png" ... /> 这样的代码,将 logo.png 替换成你自己准备好的图片,并确保图片已上传到 /static/image/common/ 目录。
    • 调整样式:通常在 index.htmheader.htm 的头部会引入一个 CSS 文件,<!--{block style}--><link rel="stylesheet" type="text/css" href="static/home/{template}/style.css?{VERHASH}" /><!--{/block}-->,你可以编辑 style.css 文件来修改颜色、间距等样式。

调整首页模块顺序或内容

比如你想把“公告栏”放到“板块列表”的上面。

  1. 编辑主框架文件:打开 /static/html/home/{你的模板目录名}/index.htm

  2. 找到模块调用代码:你会看到类似这样的结构:

    {template header}
    <div class="my-content">
        <!-- 这里是公告栏的内容 -->
        {template announcement}
        <!-- 这里是板块列表的内容 -->
        {template forumlist}
    </div>
    {template footer}
  3. 调整顺序:只需将 {template announcement}{template forumlist} 的代码行上下交换即可。


重要提示

  1. 备份!备份!备份! 在修改任何模板文件之前,务必备份原始文件,一旦修改出错,可以快速恢复。

  2. 使用 FTP/SFTP 工具 强烈建议使用 FileZilla 等专业的 FTP 客户端来上传和下载文件,避免使用网站后台自带的、功能较弱的文件管理器。

  3. 清除缓存 修改模板文件后,如果页面没有立即生效,请到 Discuz! 后台 【全局】 -> 【缓存设置】 中,点击“更新全部缓存”或“清除模板缓存”。

  4. 移动端模板 Discuz! 通常有独立的移动端模板,如果你需要修改手机首页,其文件路径为:

    • PHP 文件:/source/module/mobile/mobile.php
    • 模板文件:/static/html/mobile/{你的移动端模板目录名}/index.htm

希望这份详细的指南能帮助你准确定位和修改 Discuz! 的首页模板!