织梦怎么让不同栏目使用两套模板

栏目模板 多风格 后台配置

典型应用场景

企业站常需要把「产品中心」做成图文瀑布流,而「新闻资讯」走传统列表布局;或者 PC 站与移动站的栏目布局差异化。这就需要让两个栏目走不同的 list_*.htmarticle_*.htm 模板。

方案一:后台直接指定模板(最简单)

每个栏目都可以独立指定模板,这是织梦原生的能力。

  1. 后台 → 核心 → 栏目管理 → 修改某个栏目。
  2. 「高级选项」标签下找到以下三项:
封面模板:  article_article.htm   ← 改成 article_product.htm
列表模板:  list_article.htm       ← 改成 list_product.htm
文章模板:  article_article.htm    ← 改成 article_product.htm
  • 保存后到「生成」→「更新该栏目 HTML」即可。
  • 方案二:基于栏目 ID 判断切换

    如果不想建一堆模板文件,可以在同一个 list_article.htm 内用 runphp 判断:

    {dede:field name='typeid' runphp='yes'}
    if(@me==5 || @me==6){
        @me='<link rel="stylesheet" href="/css/product.css">';
    }else{
        @me='';
    }
    {/dede:field}

    或者直接 include 不同头部:

    {dede:field name='typeid' runphp='yes'}
    if(@me > 10){
        @me='{dede:include filename="head_product.htm"/}';
    }else{
        @me='{dede:include filename="head_news.htm"/}';
    }
    {/dede:field}

    方案三:使用模板风格切换

    更彻底的做法是为整站准备两套风格目录 templets/pc/templets/mobile/,通过 URL 参数或域名判断切换 $cfg_df_style。常用于多终端:

    // include/common.inc.php 末尾追加
    if(preg_match('/android|iphone/i',$_SERVER['HTTP_USER_AGENT'])){
        $cfg_df_style='mobile';
    }else{
        $cfg_df_style='pc';
    }
    注意:方案三修改的是核心文件,升级织梦时会被覆盖,建议用 extend.func.php 或插件方式封装。

    两套模板命名的最佳实践

    验证模板是否生效

    在模板里写一个明显的标记,例如 <!--TPL:list_product-->,刷新页面查看源码,能搜到说明模板已切换成功。如果还是旧模板,参考《织梦模板不更新是什么原因》排查缓存。

    落地建议

    多模板方案上线前,建议先用本地或测试环境把两套模板跑通,确认标签、CSS、图片路径都正确再发布。栏目数量一多,最好整理一份「栏目-模板对照表」存到团队文档里,新人接手或后续新增栏目时,按表对应配置就不会乱。把模板当成可复用的资产去管理,网站的栏目扩展才会真正轻松。