织梦(DedeCMS)作为国内广泛使用的PHP网站管理系统,其产品分类功能是电商类网站或展示型网站的核心模块之一,二级分类调用,即在顶级分类下展示其子分类,能够帮助访客快速定位目标产品,提升网站的信息组织效率和用户体验,本文将详细介绍织梦产品二级分类的调用方法,包括基础标签语法、参数配置、常见场景应用及问题解决,确保网站管理员能够准确、高效地实现分类展示,符合百度对网站内容结构化、用户体验优化的要求。

织梦产品二级分类调用

织梦二级分类调用基础标签语法

织梦调用分类主要通过{dede:channel}标签实现,该标签支持多种参数,可灵活控制分类的层级、显示内容及样式,二级分类调用需明确区分“顶级分类”与“子分类”的层级关系,核心参数包括typeid(指定顶级分类ID)和reid(指定父级分类ID,用于调用子分类)。

基础调用语法

{dede:channel typeid='0' reid='顶级分类ID'}
    <a href="[field:typelink/]">[field:typename/]</a>
{/dede:channel}
  • typeid='0':表示不限制顶级分类ID,若需指定特定顶级分类,可设置为对应分类ID(如typeid='1')。
  • reid='顶级分类ID':关键参数,用于调用指定顶级分类下的所有子分类(即二级分类),若顶级分类“电子产品”的ID为1,则reid='1'将调用其下的所有二级分类(如“手机”“电脑”等)。
  • [field:typelink/]:分类链接,指向分类列表页。
  • [field:typename/]:分类名称,显示分类的标题。

不同场景下的二级分类调用实现

顶级分类列表页调用其二级分类

在顶级分类的列表页(如“电子产品”分类页),需展示该分类下的所有二级分类,此时需获取当前顶级分类的ID,可通过typeid参数动态传入,假设当前顶级分类ID通过{dede:field name='typeid'/}获取,调用代码如下:

织梦产品二级分类调用

{dede:channel typeid='{dede:field name='typeid'/}' reid='0'}
    <!-此处调用顶级分类本身,非二级分类 -->
{/dede:channel}
{dede:channel typeid='0' reid='{dede:field name='typeid'/}'}
    <li>
        <a href="[field:typelink/]">[field:typename/]</a>
        <!-可在此处递归调用三级分类,若需要 -->
    </li>
{/dede:channel}

说明:第一段代码调用顶级分类本身(通常用于显示当前分类名称),第二段代码通过reid参数调用当前顶级分类下的二级分类,若需显示分类下的产品数量,可扩展标签为{dede:channel typeid='0' reid='{dede:field name='typeid'/}' row='10'},结合[field:arcp/](需开启arcp字段支持)或通过SQL查询获取数量。

产品详情页调用当前分类的兄弟分类

在产品详情页,若需展示当前产品所属二级分类的“兄弟分类”(即同级的其他二级分类),需先获取当前分类的顶级分类ID,再调用该顶级ID下的所有子分类,织梦默认变量{dede:field name='typeid'/}为当前分类ID,可通过以下方式获取顶级分类ID(需确保分类表结构正确):

织梦产品二级分类调用

{dede:sql sql="SELECT reid FROM `dede_arctype` WHERE id=~typeid~"}
    {dede:get topid='reid'}
        {dede:channel typeid='0' reid='[field:topid/]'}
            <a href="[field:typelink/]">[field:typename/]</a>
        {/dede:channel}
    {/dede:get}
{/dede:sql}

说明:通过SQL查询当前分类的reid(即顶级分类ID),再调用该顶级分类下的所有二级分类,若织梦版本支持{dede:field name='topid'/}变量,可直接替换为reid='{dede:field name='topid'/}',简化代码。

全站所有二级分类循环调用

若需在全站范围内循环展示所有顶级分类及其对应的二级分类(如网站侧边栏分类导航),可嵌套使用{dede:channel}

{dede:channel typeid='0' reid='0' row='8'}
    <div class="top-category">
        <h3>[field:typename/]</h3>
        <ul>
            {dede:channel typeid='0' reid='[field:id/]'}
                <li><a href="[field:typelink/]">[field:typename/]</a></li>
            {/dede:channel}
        </ul>
    </div>
{/dede:channel}

说明:外层{dede:channel}调用所有顶级分类(reid='0'),内层{dede:channel}通过reid='[field:id/]'动态获取每个顶级分类的ID,调用其下的二级分类。row='8'限制显示的顶级分类数量,避免内容过多影响页面加载。

二级分类调用的常见问题及解决方法

调用不显示分类内容

  • 原因1typeidreid参数错误,需确认顶级分类ID和子分类ID是否正确,可通过织梦后台“核心→栏目管理”查看分类ID。
  • 原因2:分类未生成或栏目类型错误,确保二级分类已生成,且栏目类型为“栏目”(非外部链接、单页等)。
  • 解决方法:简化标签测试,如固定reid='1'(假设ID为1的顶级分类存在子分类),确认标签基础语法无误后,再动态传入参数。

分类层级混乱,显示三级或更多层级

  • 原因:未限制{dede:channel}的层级深度,默认可能递归调用所有子分类。
  • 解决方法:通过sonlevel参数限制子分类层级,如sonlevel='1'仅调用直接子分类(二级分类),避免多层嵌套。
    {dede:channel typeid='0' reid='1' sonlevel='1'}
        <a href="[field:typelink/]">[field:typename/]</a>
    {/dede:channel}

分类链接错误,跳转到404页面

  • 原因:分类列表页未生成或栏目内容模型配置错误。
  • 解决方法:确保分类列表页已生成(通过织梦“生成”功能),且栏目内容模型选择“列表”(如“普通文章、产品列表”等),避免使用“封面”或“单页”模型导致链接无效。

优化建议:提升分类调用的用户体验与SEO效果

  1. 分类名称简洁明了:二级分类名称应避免过长,包含核心关键词(如“智能手机”而非“最新款智能手机大全”),便于访客快速识别。
  2. 添加分类描述:在{dede:channel}标签中可扩展[field:description/]显示分类简短描述,提升内容丰富度,但需控制长度(建议30-80字)。
  3. 样式适配:通过CSS控制分类列表的显示样式(如横向导航、侧边栏折叠等),确保在不同设备上(PC、移动端)均有良好展示。
    .category-list { list-style: none; padding: 0; }
    .category-list li { margin: 5px 0; }
    .category-list a { text-decoration: none; color: #333; }
    .category-list a:hover { color: #0066cc; }
  4. 避免重复调用:同一页面内避免多次调用相同分类层级,减少冗余代码,提升页面加载速度,百度算法更青睐加载速度快、结构清晰的页面。

织梦产品二级分类调用是网站内容组织的重要环节,掌握{dede:channel}标签的typeidreidsonlevel等参数用法,结合实际场景(列表页、详情页、全站导航)灵活应用,能够高效实现分类展示,需注重分类名称的准确性、链接的有效性及页面样式的优化,以提升用户体验,符合百度对网站E-A-T(经验、专业、权威、可信)的要求,为网站带来更好的搜索表现。

引用说明基于织梦(DedeCMS)V5.x-V7.x版本官方文档及实际开发经验整理,涉及标签语法参考自织梦官方《模板标签说明手册》,分类层级优化建议结合百度搜索引擎优化指南及网站用户体验设计原则,具体参数细节可查阅织梦官方社区或后台帮助文档。

回顶部