织梦企业模板如何修改首页内容和栏目设置

织梦企业模板如何修改首页内容和栏目设置

织梦企业模板如何修改首页内容和栏目设置

织梦(DedeCMS)企业站通常由模板文件、栏目配置、文章数据和生成后的静态页面共同组成。修改首页时,常见做法不是直接编辑浏览器里看到的 index.html,而是找到当前使用的首页模板,调整其中的 HTML 和织梦标签,再重新生成首页。栏目名称、栏目层级、栏目链接和栏目列表模板,则需要结合后台栏目设置与模板标签一起处理。

本文适用于使用织梦模板标签的企业站维护场景,例如替换首页文字、调整导航栏目、控制首页文章列表、指定栏目列表页模板。不同织梦版本、二次开发程序和模板包的后台菜单及标签扩展可能有所差别;示例以常见的 DedeCMS 模板标签用法为基础,实际使用前应在测试站验证。

一、先分清模板、栏目数据和生成页面

修改前先确认要改的是哪一层,能避免改错文件或改完看不到效果。

  • 模板文件:控制页面结构和呈现方式,常见位置是 templets/模板风格目录/。首页模板通常名为 index.htm,栏目列表模板和文章模板通常是其他 .htm 文件,具体命名由站点配置决定。
  • 栏目数据:包括栏目名称、父栏目、栏目类型、栏目链接、列表页模板等,由后台栏目管理维护。模板标签读取这些数据,通常不应靠手工把所有栏目名称写死在模板里。
  • 文章数据:包括标题、发布时间、所属栏目、正文和审核状态。首页文章区块通常通过列表标签从文章数据中读取内容。
  • 生成页面:使用静态发布的站点,浏览器访问的首页可能是根目录下的 index.html。它是根据模板和数据生成的结果,不一定会随着模板保存自动更新。

因此,看到首页内容没有变化时,优先检查:修改的是不是当前启用的模板风格;首页是否已重新生成;浏览器或缓存插件是否仍在返回旧页面;网站访问的首页文件是否与当前生成配置一致。

二、备份并确认当前首页模板

在修改前,至少备份将要编辑的模板文件和站点数据库。若项目使用 Git,应先查看工作区状态,再提交一次可回退的基线。不要只备份首页模板:若后续修改了栏目模板或系统配置,也应分别留存。

# 在站点目录中查看模板文件(Linux/macOS)
find templets -maxdepth 3 -type f -name 'index.htm' -print

# 查看当前目录及版本控制状态
pwd
git status --short

后台通常可以在系统基本参数或模板相关配置中查看默认模板风格;具体菜单名称随版本和二次开发而异。常见模板目录形态例如:

templets/
└── enterprise/
    ├── index.htm
    ├── head.htm
    ├── footer.htm
    ├── list_article.htm
    └── article_article.htm

目录名只是示例。不要因为找到了一个 index.htm 就认定它正在使用;站点可能有多套模板,或者首页配置指向另一套模板。还要确认首页生成设置使用的模板文件名。若模板由商业主题或二次开发提供,可能使用包含文件或自定义标签,修改前应先检索首页实际引用关系。

三、修改首页固定内容

固定内容适合放在模板 HTML 中,例如品牌介绍、服务说明和页面布局。站点名称等经常由后台修改的字段,则宜使用织梦标签读取,减少多处硬编码。常见的全局站点名称标签写法如下:

<title>{dede:global.cfg_webname/}</title>

如果要在首页增加一段企业介绍,可以在合适的布局容器中编辑普通 HTML:

<section class="home-intro">
  <h1>专注企业数字化服务</h1>
  <p>这里填写经审核的企业简介,说明服务范围、服务对象和联系渠道。</p>
  <a href="/contact/">联系团队</a>
</section>

上面的固定文案不会自动随后台栏目或文章变化。若希望非开发人员能在后台维护这些内容,可以考虑使用织梦已有的内容模型、单页功能或项目已经提供的自定义字段;不要为了方便就在模板中插入未经审查的 PHP 代码。

编辑模板时应保留原有的结构、CSS 类名和 JavaScript 依赖。直接删除一段看似多余的容器,可能会破坏移动端布局或脚本选择器。先在测试环境查看桌面和移动端,再发布到生产站点。

四、用标签输出首页文章列表

织梦模板通常通过 {dede:arclist} 获取文章列表。下面示例展示一个首页资讯区块:读取指定栏目下的若干条文章,并输出标题链接和日期。把 栏目ID 替换为站点中真实的数字栏目 ID。

<section class="home-news">
  <h2>企业资讯</h2>
  <ul>
    {dede:arclist typeid='3' row='6' orderby='pubdate' orderway='desc'}
    <li>
      <a href="[field:arcurl/]">[field:title/]</a>
      <time datetime="[field:pubdate function='GetDateTimeMK(@me)'/]"">
        [field:pubdate function='GetDateMK(@me)'/]
      </time>
    </li>
    {/dede:arclist}
  </ul>
</section>

注意,HTML 属性中日期标签示例的引号需要保持正确。为了避免模板解析和 HTML 属性引号相互干扰,实际项目中更稳妥的写法是先只输出可见日期:

<li>
  <a href="[field:arcurl/]">[field:title/]</a>
  <span>[field:pubdate function='GetDateMK(@me)'/]</span>
</li>

typeid 用于限定栏目范围,row 控制本次列表输出条数,orderby 和 orderway 用于指定排序字段及方向。示例中的 pubdate 和 desc 表示按发布时间倒序排列。标签可用属性、字段及函数会受到织梦版本和站点扩展影响;若某个字段或函数在当前版本不可用,应依据该版本的标签文档或源码确认,不要把示例中的属性当成所有版本都支持的接口。

如果首页需要混合多个栏目内容,可按当前版本支持的方式设置多个栏目 ID,或分别写多个列表区块。为了让栏目关系更清楚,也可以分别设置“产品动态”“行业资讯”等模块,每个模块只读取对应栏目。栏目 ID 在不同环境导入后未必一致;测试站与正式站的 ID 不同时,部署模板前要重新核对,不能假设数字 ID 永远固定。

五、用栏目标签生成导航

若导航内容应随栏目增删而更新,不建议在模板里反复手写栏目名称和 URL。常见栏目标签可以按顶级栏目输出导航:

<nav class="site-nav" aria-label="主导航">
  <ul>
    {dede:channel type='top' row='10'}
    <li><a href="[field:typelink/]">[field:typename/]</a></li>
    {/dede:channel}
  </ul>
</nav>

这里的 type='top' 表示读取顶级栏目,row 是输出数量。栏目链接和栏目名称分别由栏目字段提供。具体栏目是否显示,还可能受栏目设置、栏目类型和模板标签实现影响。若首页导航需要显示“首页”按钮,通常单独写入模板,因为首页并不一定作为普通内容栏目参与循环:

<nav class="site-nav" aria-label="主导航">
  <ul>
    <li><a href="/">首页</a></li>
    {dede:channel type='top' row='10'}
    <li><a href="[field:typelink/]">[field:typename/]</a></li>
    {/dede:channel}
  </ul>
</nav>

栏目列表页通常还需要输出当前栏目下级栏目。部分常用模板会使用 type='son' 并指定当前栏目 ID,示例如下:

<ul class="sub-nav">
  {dede:channel type='son' typeid='3' row='20'}
  <li><a href="[field:typelink/]">[field:typename/]</a></li>
  {/dede:channel}
</ul>

这段写法适用于已知栏目 ID 的场景。若同一模板要供多个栏目共用,应优先查阅当前版本和项目原有模板,确认是否能以当前栏目上下文动态读取下级栏目,避免把 typeid='3' 固定后导致所有栏目页都显示同一组子栏目。

六、在后台设置栏目与模板

栏目设置建议分成“栏目结构”和“页面模板”两类来检查。常见工作流程如下,具体菜单文字可能随版本不同:

  1. 进入后台栏目管理,确认栏目名称、父栏目、栏目类型和排序。
  2. 检查栏目是否启用、是否允许发布相应内容,以及该栏目实际采用的内容模型。
  3. 为栏目选择列表页模板;需要自定义内容页时,再检查文章页模板设置。
  4. 保存后,按站点的静态发布流程生成栏目页及文章页。
  5. 打开栏目链接,确认 URL、分页、列表内容和面包屑均与栏目结构一致。

后台栏目字段与模板标签不是一回事。把模板文件改成 list_product.htm,并不会自动让某个栏目使用它;还需要在栏目配置中选择该列表模板,或调整项目既有的模板调用规则。反过来,后台选择了一个不存在或路径不匹配的模板,也可能造成页面空白、生成失败或显示默认结构。

模板名称、模板路径和栏目 URL 规则都应按当前站点配置填写。对于已经被搜索引擎收录的栏目,不要随意更换目录名或 URL 规则。确需改动时,应评估旧地址的处理方式,并在上线前测试站内链接和跳转配置;不要只改模板链接而不处理实际页面地址。

七、修改后如何让变化生效

静态站点通常要重新生成页面。模板文件保存后,按后台提供的更新顺序生成首页、栏目页和文章页;不同版本的后台菜单名称不完全一致,可根据“生成”或“更新 HTML”等功能查找。只改首页固定文案时,通常至少需要重新生成首页;若改了栏目列表模板或栏目配置,还应重新生成受影响的栏目页;改了文章模板时,则要评估是否需要重新生成文章页。

同时检查缓存:浏览器硬刷新只能处理浏览器缓存,不能替代服务器端重新生成。若站点使用反向代理、缓存插件或 CDN,还要按实际配置清理相关缓存。不要因为本地模板已保存,就假定线上静态文件已经更新。

上线前可以先检查生成结果中的标签是否正确解析。若页面上直接出现 {dede:...} 或 [field:...],通常说明页面没有经过正确的模板生成流程、标签写法不符合当前版本,或对应内容位于不会解析模板标签的区域。若列表为空,则检查栏目 ID、栏目内容、内容审核状态、标签范围和栏目类型。

八、常见错误与排查方式

1. 改了模板,首页仍显示旧内容

检查是否编辑了当前启用的风格目录,是否重新生成首页,以及访问的域名是否指向当前站点目录。再检查服务器缓存、CDN 和浏览器缓存。可以查看首页实际文件的修改时间,但不要在生产环境未经确认就直接覆盖根目录中的生成文件。

2. 栏目标签没有输出任何内容

确认后台确实存在符合条件的栏目,栏目类型和父子关系符合标签的筛选范围,栏目没有被设置为不显示或其他不可输出状态。还要确认当前模板上下文与标签属性相符。最简单的排查方式是临时缩小模板,只保留栏目标签和少量 HTML,在测试环境重新生成。

3. 首页列表有内容,但栏目列表不符合预期

检查 typeid 是否填对,父栏目和子栏目是否按预期包含,排序字段是否符合业务需求。数字 ID 容易在不同数据库间产生差异,应在目标站点后台核对,而不是从另一套站点照抄。

4. 改了栏目模板但浏览器访问地址没变化

模板决定页面结构,不负责自动改写所有栏目 URL。URL 通常还受到栏目设置、系统路径规则、伪静态配置和服务器重写规则影响。先确定需求是更换页面样式还是更换地址,不要用改模板的方式尝试修复 URL 规则。

5. 中文乱码或模板保存后符号错乱

检查文件编码与站点实际编码是否一致。旧站常有特定编码约定,不能只因为新编辑器默认使用 UTF-8 就转换模板。转换前备份文件,并在测试环境验证模板、数据库内容和网页响应的字符集设置。

6. HTML 或 CSS 改动导致布局异常

检查标签闭合、容器嵌套和 CSS 类名是否被误删。模板标签也要保留成对结构,例如开始标签和结束标签不要只删除其中一个。遇到异常时优先比对修改前后的差异,逐段回退定位,而不是一次性重写整个首页。

九、安全与兼容性边界

模板会输出来自后台的数据,栏目名称、文章标题和自定义字段都应按织梦标签的正常输出方式处理。不要为了显示内容而把不可信数据拼进 JavaScript、HTML 属性或 SQL 语句;若项目提供字段过滤或转义机制,应按该版本文档使用。模板标签并不能替代对后台账号、上传权限和内容审核的安全管理。

尤其不要把用户可编辑字段直接当作可执行代码,也不要在模板中加入来源不明的 PHP、远程脚本或数据库查询。此类改动可能引入代码执行、数据泄露或跨站脚本风险。若确需扩展功能,应先审查代码来源、权限和输入校验,并在隔离的测试环境中评估。

织梦的不同发行版本及大量二次开发版本,在 PHP 兼容性、后台功能、标签实现和安全维护状态上可能有差异。修改模板不能修复程序本身的安全或运行时问题。上线前应确认站点运行环境与当前程序版本相匹配,并根据项目维护策略处理程序更新、备份和访问控制;不要依据某个标签示例推断整套系统具有某项安全保证。

十、建议的实际操作顺序

  1. 确认网站版本、当前模板风格和首页生成方式。
  2. 备份首页模板、相关栏目模板及数据库,记录当前栏目 ID。
  3. 先在测试环境修改一处固定文案,确认模板文件确实生效。
  4. 再添加栏目导航或文章列表标签,逐项验证输出范围和链接。
  5. 在后台检查栏目结构、栏目模板选择和内容状态。
  6. 按影响范围重新生成首页、栏目页或文章页,并检查缓存。
  7. 验证不同屏幕尺寸、页面链接、中文显示和浏览器控制台,再部署生产环境。

简而言之,首页改版主要修改当前启用的首页模板并重新生成;栏目设置既涉及后台栏目数据,也涉及栏目标签和列表模板的对应关系。先确认数据来源,再动模板;按范围生成页面并逐项验证,通常比在生成后的静态文件上直接改内容更可靠,也更容易维护。

© 版权声明

相关文章