dede 模板路径修改

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

核心概念:DEDE 的模板路径机制

在修改之前,你需要理解 DEDE 是如何查找模板的。

  1. 默认路径:DEDE 默认会去 /templets/default/ 目录下查找模板文件,这里的 default 就是默认模板目录名
  2. 动态路径:通过修改配置文件,你可以告诉 DEDE 你的模板存放在哪里。
  3. 模板文件:通常是 .htm 后缀的文件,里面包含了 HTML 代码和 DEDE 的模板标签(如 {dede:arclist})。

修改模板路径,本质上就是改变 DEDE 寻找这些 .htm 文件的根目录


后台设置 - 最简单、最安全的方法

这是官方推荐且最安全的方法,适用于创建一个新的主题模板。

适用场景:你想安装一个新的模板主题,并让它成为当前站点使用的模板。

操作步骤

  1. 上传新模板

    • 将你的新模板文件夹(命名为 mytheme)通过 FTP 或主机面板上传到服务器的 /templets/ 目录下。
    • 你的目录结构应该是:/templets/mytheme/
  2. 登录 DEDE 后台

    使用管理员账号登录你的 DEDE 后台。

  3. 进入模板设置

    • 在左侧菜单栏中找到并点击 【系统】 -> 【系统基本参数】
  4. 修改模板路径

    • 在“系统基本参数”页面,点击右上角的 【核心设置】 标签页。
    • 找到 “模板默认目录” 这一项。
    • 默认值是 default,现在将其修改为你的新模板目录名,mytheme
    • 点击 【保存】 按钮。
  5. 验证效果

    • 清空浏览器缓存,或者按 Ctrl + F5 强制刷新。
    • 访问你的网站首页,你应该能看到新模板已经生效。

优点

  • 操作简单,无需修改核心文件。
  • 安全,官方支持,升级 DEDE 时不会被覆盖。

缺点

  • 一次只能设置一个“默认”模板路径,如果需要多个主题切换,需要配合其他方法。

修改 config.php 文件 - 适用于程序与模板分离

当你想把模板文件放到网站根目录之外,或者一个完全独立的目录时(D:\mydede_templates),就需要修改核心配置文件。

适用场景

  • 将模板与网站程序完全分离,便于管理和备份。
  • 多个站点共享同一套模板。

操作步骤

  1. 定位配置文件

    • 通过 FTP 连接到你的服务器,找到 DEDE 的核心配置文件:/include/config.php
  2. 找到模板路径配置项

    • 打开 config.php 文件,找到 $cfg_templet_dir 这一行。
    • 代码大概是这样的:$cfg_templet_dir = $cfg_cmspath.'/templets';
  3. 修改路径值

    • 场景 A:修改为 /templets 下的子目录
      • 如果你只是想切换到 mytheme 目录,可以修改为:
        $cfg_templet_dir = $cfg_cmspath.'/templets/mytheme';
    • 场景 B:修改为网站根目录外的绝对路径(高级用法)
      • 假设你想把模板放在 /home/user/mywebsite_templates 目录下,可以修改为:
        // 使用绝对路径
        $cfg_templet_dir = '/home/user/mywebsite_templates';
      • 注意:使用绝对路径时,请确保 Web 服务器(如 Apache/Nginx)对该目录有读取权限。
  4. 保存文件并上传

    • 保存修改后的 config.php 文件,并重新上传到服务器覆盖原文件。
  5. 验证效果

    清空网站缓存(后台【系统】->【一键更新缓存】),然后刷新网站查看效果。

优点

  • 灵活性极高,可以将模板放在任何服务器有权限访问的目录。
  • 实现了程序与模板的完全分离。

缺点

  • 修改了核心文件,升级 DEDE 时需要重新修改。
  • 如果路径设置错误,网站将无法显示任何模板(白屏)。

动态指定模板路径 - 适用于特定页面或模块

你可能只想让某一个栏目、某一篇文档或者某一个模块使用不同的模板,而不是整个网站,这时可以在模板或标签中动态指定路径。

适用场景

  • 单个页面使用特殊模板(例如活动页、落地页)。
  • 不同栏目使用不同风格的模板。

操作步骤

  1. 在模板标签中使用 typeidtemplet 属性

    • {dede:arclist} 等列表标签,以及 {dede:channel} 等频道标签,都支持 templet 属性来指定模板文件。
    • 示例:在首页调用某个栏目的文章,并使用该栏目专用的列表模板。
      {dede:arclist typeid='3' titlelen='30' row='10' templets='list_special.htm'}
      <li><a href="[field:arcurl/]">[field:title/]</a></li>
      {/dede:arclist}
    • typeid='3':指定调用 ID 为 3 的栏目。
    • templets='list_special.htm':告诉 DEDE 不要去默认目录找,而是直接使用 list_special.htm 这个文件,DEDE 会在当前默认模板目录下寻找这个文件。
  2. 在 PHP 代码中指定

    • 如果你自定义了 PHP 文件,可以在代码中临时覆盖模板路径。
    • 在调用 GetTemplets() 函数之前,设置一个全局变量 $cfg_df_style
    • 示例
      // 在你的 PHP 文件中
      $cfg_df_style = 'another_theme'; // 切换到 another_theme 目录
      $tplfile = $cfg_templet_dir . '/'. $cfg_df_style .'/article_article.htm';

    // 或者直接使用 GetTemplets 函数 $tpl = $dtp->GetTemplets('article_special.htm'); // 在默认目录下查找

优点

  • 精准控制,非常灵活。
  • 不影响网站其他部分的模板。

缺点

  • 需要对 DEDE 标签和 PHP 代码有一定了解。
  • 容易造成模板路径混乱,不推荐新手在全局使用。

总结与建议

方法 适用场景 优点 缺点 推荐指数
后台设置 安装新主题、日常切换 简单、安全、官方支持 一次只能一个主题 ★★★★★
修改 config.php 程序与模板分离、多站共享 灵活性极高、彻底分离 修改核心文件、有风险 ★★★☆☆
动态指定 单页面/单模块特殊模板 精准控制、不影响全局 需要技术基础、易混乱 ★★★★☆

给新手的建议

  • 优先使用【方法一:后台设置】,这是最标准、最不容易出错的方式。
  • 如果需要管理多个主题,可以考虑使用 DEDE 的多模板功能插件,或者结合【方法一】和【方法三】来实现,通过后台设置一个默认主题,然后在特定页面用【方法三】调用另一个主题的模板。

重要提醒: 在进行任何文件修改之前,务必备份你的网站文件和数据库!这样即使修改出错,也能快速恢复。

-- 展开阅读全文 --
头像
c语言10进制转16进制
« 上一篇 今天
C语言16进制转10进制如何实现?
下一篇 » 今天

相关文章

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

目录[+]