同一栏目如何调用不同文章页模板?

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

最核心、最推荐的方法是利用DedeCMS强大的自定义字段模板判断功能,下面我将为你提供两种主流的实现方法,并详细讲解步骤。

dede同一个栏目2个文章页模板
(图片来源网络,侵删)

使用自定义字段 + 模板判断(最推荐、最灵活)

这种方法的核心思想是:在文章中添加一个“开关”字段(比如一个单选按钮),用来标识这篇文章应该使用哪个模板,然后在文章内容页模板(article_article.htm)中,通过PHP判断这个开关的值,来动态引入或切换不同的HTML代码片段。

第一步:创建自定义字段

  1. 登录后台:进入你的DedeCMS后台管理。

  2. 找到模型:点击左侧菜单的【核心】 -> 【内容模型管理】。

  3. 选择模型:在列表中找到你文章所使用的模型(通常是“普通文章”),点击后面的【管理字段】。

    dede同一个栏目2个文章页模板
    (图片来源网络,侵删)
  4. 添加新字段:点击【添加新字段】。

    • 字段名称templet_type (这个名称可以自定义,建议用英文,避免与系统冲突)
    • 字段类型radio (单选按钮)
    • 字段提示文字文章模板类型 (这个是后台填写时给管理员看的提示)
    • 默认值type1 (设置一个默认选项)
    • 选项(一行一个)
      type1,模板一
      type2,模板二
      • type1type2 是提交到数据库的值。
      • 模板一模板二 是后台表单中显示给用户看的文本。
    • 其他选项:保持默认即可,确保“是否公开”和“对会员是否公开”都勾选。
  5. 保存字段:点击【保存】。

第二步:创建两个模板文件

在你的模板目录(通常是 /templets/你的模板目录/)下,创建两个独立的模板文件,

  • article_type1.htm (模板一的代码)
  • article_type2.htm (模板二的代码)

你可以在这两个文件里写完全不同的HTML结构和样式。

dede同一个栏目2个文章页模板
(图片来源网络,侵删)

第三步:修改主文章模板

这是最关键的一步,你需要修改默认的文章内容页模板 article_article.htm

  1. 打开 article_article.htm 文件。
  2. 找到你希望展示不同模板内容的位置({dede:field.body/} 的位置,或者你自定义的内容区域)。
  3. 在该位置加入以下PHP判断代码:
{dede:field.templet_type runphp='yes'}
    if(@me == 'type1') {
        // 如果字段值是 type1,则引入模板一的文件
        @me = include_once(DEDETEMPLATE.'/你的模板目录/article_type1.htm');
    } else if(@me == 'type2') {
        // 如果字段值是 type2,则引入模板二的文件
        @me = include_once(DEDETEMPLATE.'/你的模板目录/article_type2.htm');
    } else {
        // 如果是其他值或为空,则使用默认模板或显示一个通用内容
        @me = include_once(DEDETEMPLATE.'/你的模板目录/article_type1.htm'); // 默认使用模板一
    }
{/dede:field.templet_type}

代码解释

  • {dede:field.templet_type runphp='yes'}:调用我们刚刚创建的自定义字段 templet_type,并开启PHP运行。
  • if(@me == 'type1')@me 代表当前字段的值,这里判断值是否为 type1
  • @me = include_once(...):如果条件成立,就把引入的模板文件的内容赋值给 @me,从而在页面上显示出来。
  • DEDETEMPLATE:这是DedeCMS定义的模板根目录常量,使用它可以确保路径正确。
  • else ifelse:处理其他情况,保证逻辑的完整性。

第四步:发布文章

  1. 进入【新增内容】或【编辑内容】页面。
  2. 你会发现文章编辑表单中多了一个“文章模板类型”的下拉选择框。
  3. 根据需要选择“模板一”或“模板二”。
  4. 正常填写文章标题、内容等,发布】或【更新】。

当你访问选择了不同模板类型的文章时,页面就会显示对应模板的内容了。


通过栏目设置(适用于栏目下内容风格统一)

如果你的一个栏目下的所有文章都使用一种模板,而另一个栏目下的所有文章使用另一种模板,那么你根本不需要自定义字段,直接通过栏目设置即可。

第一步:创建两个模板文件

与方法一相同,创建 article_type1.htmarticle_type2.htm

第二步:修改栏目属性

  1. 在后台,点击【核心】 -> 【栏目管理】。
  2. 找到你希望应用不同模板的栏目,点击后面的【修改】。
  3. 在栏目修改页面,找到 模板” 这个选项。
  4. 默认情况下这里是空的,表示使用系统默认的 article_article.htm
  5. 直接输入你的模板文件名,article_type1.htm
  6. 保存该栏目设置。

效果

  • 设置了“栏目内容模板”的栏目,其下的所有文章都会调用这个指定的模板文件。
  • 没有设置的栏目,则继续使用系统默认的 article_article.htm

局限性

这种方法只能实现整个栏目使用一个模板,无法在同一个栏目内为单篇文章指定不同模板,它只适用于场景比较固定的需求。


总结与对比

特性 方法一 (自定义字段) 方法二 (栏目设置)
灵活性 极高,可以在同一个栏目内,为任意单篇文章指定不同模板。 较低,只能为一个栏目下的所有文章统一设置一个模板。
实现复杂度 较高,需要创建字段、创建多个模板、修改主模板并加入PHP代码。 非常简单,只需创建模板文件,然后在后台栏目设置中选择即可。
适用场景 专题页面、混合内容展示、需要对文章进行精细化管理。 不同栏目有不同的视觉风格,且栏目内内容风格统一。
推荐度 ★★★★★ (强烈推荐) ★★★☆☆ (特定场景推荐)

对于你提出的“同一个栏目2个文章页模板”这个需求,方法一(自定义字段 + 模板判断) 是最完美、最标准的解决方案,虽然步骤稍多,但一旦设置好,后续使用起来非常方便和灵活。

-- 展开阅读全文 --
头像
织梦网站删友情链接后,原ID去哪了?
« 上一篇 2025-12-19
C、C++、Java三者核心区别是什么?
下一篇 » 2025-12-19

相关文章

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

目录[+]