arctype 是织梦CMS中一个极其核心且基础的概念,理解它对于使用和二次开发织梦至关重要。

什么是 arctype?
arctype 是 “文章类型” 或 “栏目类型” 的英文缩写,在织梦CMS中,它代表着一个栏目。
你可以把 arctype 理解为一个网站的“分类目录”或“文件夹”,网站上的所有内容(文章、图集、软件等)都必须归属于某个 arctype(栏目)之下。
一个新闻网站可能会有以下 arctype(栏目):
- 国内新闻 (
arctype) - 国际新闻 (
arctype) - 科技前沿 (
arctype) - 体育资讯 (
arctype)
每个 arctype 都定义了其下内容的属性、显示方式和组织结构。

arctype 的核心数据表
arctype 的所有信息都存储在数据库的 dede_arctype 表中,这个表是织梦的基石之一,了解这个表的结构,就等于掌握了 arctype 的命脉。
以下是 dede_arctype 表的主要字段:
| 字段名 | 中文名称 | 说明 |
|---|---|---|
| id | 栏目ID | 主键,每个栏目的唯一标识符,非常重要。 |
| reid | 父栏目ID | 用于实现栏目的无限级分类。reid=0,则为顶级栏目。 |
| topid | 顶级栏目ID | 指向该栏目所属的顶级栏目的ID,方便快速定位到顶级栏目。 |
| sortrank | 排序权重 | 数值越小,排序越靠前,用于在同级栏目中进行排序。 |
| typename | 栏目名称 | 用户在网站前台看到的栏目名称,如“公司新闻”。 |
| typedir | 栏目目录 | 栏目在网站上的虚拟路径,决定了栏目列表页和内容页的URL结构。a/gsxw/ |
| isdefault | 是否为默认栏目 | 1表示是,0表示否,默认栏目通常用于存放首页内容或作为单页栏目。 |
| defaultname | 默认名称 | 当 isdefault=1 时,此字段定义了栏目首页的文件名,如 index.html。 |
| issystem | 是否为系统栏目 | 1表示是(如“首页”、“文章”等核心栏目),0表示否,通常不建议删除系统栏目。 |
| channeltype | 模型类型 | 非常重要!指定该栏目使用的内容模型。-1为外部链接,1为文章模型,2为图集模型,3为下载模型等。 |
| corank | 协同等级 | 用于多站点协同,普通用户较少使用。 |
| description | 栏目描述 | 对栏目的简要描述,利于SEO。 |
| keywords | 栏目关键词 | 栏目的核心关键词,利于SEO。 |
| moresite | 是否为多站点栏目 | 1表示是,该栏目的内容会发布到指定的子站点。 |
| crossid | 交叉栏目ID | 可以关联其他栏目的内容,实现内容聚合。 |
| content | 当栏目类型为“单页”时,这里存放页面的具体HTML内容。 | |
| seohtml | SEO设置 | 用于自定义该栏目的 <title>, <meta description>, <meta keywords>。 |
arctype 的核心功能
无限级分类
通过 reid(父栏目ID)和 topid(顶级栏目ID)字段,arctype 实现了强大的无限级分类功能,你可以构建出任意层级的栏目结构,
首页 -> 产品中心 -> 电子产品 -> 智能手机
在这个结构中:
产品中心的reid是首页的id。电子产品的reid是产品中心的id。智能手机的reid是电子产品的id。- 所有子栏目的
topid都指向产品中心的id。
内容模型绑定
每个 arctype 都必须绑定一个内容模型(channeltype 字段),这决定了这个栏目里可以发布什么类型的内容。

- 绑定文章模型 (
channeltype=1):可以发布普通文章。 - 绑定图集模型 (
channeltype=2):可以发布图片集。 - 绑定下载模型 (
channeltype=3):可以发布软件、文档等下载资源。 - 绑定单页模型 (
channeltype= 特定值):不发布文章列表,而是显示一个固定的页面内容,常用于“关于我们”、“联系我们”等。
URL 路由规则
typedir 字段定义了栏目的URL路径,织梦会根据这个字段生成栏目列表页和内容页的链接。
- 栏目列表页:
{typedir}/index.html或{typedir}/list_1.html(1是栏目ID) - 页:
{typedir}/{aid}.html(aid是文章ID)
一个 typedir 为 news/gsxw 的栏目,其列表页链接就是 news/gsxw/index.html。
与 arctype 相关的核心模板标签
在织梦的模板文件(.htm)中,有一系列标签专门用于调用和显示 arctype 信息。
获取当前栏目信息
通常在列表页(list_xxx.htm页(article_xxx.htm)中使用。
{dede:field name='typename' /} <!-- 获取当前栏目名称 -->
{dede:field name='typedir' /} <!-- 获取当前栏目目录 -->
{dede:field name='description' /} <!-- 获取当前栏目描述 -->
{dede:field name='keywords' /} <!-- 获取当前栏目关键词 -->
获取顶级栏目信息
在子栏目页面,有时需要获取顶级栏目的信息。
{dede:field name='topid' runphp='yes'}
$dsql = new DedeSql(false);
$row = $dsql->GetOne("SELECT typename FROM `dede_arctype` WHERE id=@me");
@me = $row['typename'];
{/dede:field}
或者更简单的方式(如果模板支持):
{dede:field name='position' runphp='yes'}
$tc = explode(' > ', @me);
@me = $tc[0]; // 获取第一个,即顶级栏目
{/dede:field}
调用栏目列表(导航栏)
这是最常用的标签,用于生成网站的导航菜单。
{dede:channel type='top' row='8' currentstyle="<li class='active'><a href='~typelink~'>~typename~</a></li>"}
<li><a href='[field:typelink/]'>[field:typename/]</a></li>
{/dede:channel}
type='top':只调用顶级栏目。row='8':调用8个栏目。currentstyle:定义当前页面所在栏目的样式。
调用子栏目列表
在某个栏目页,显示其所有直接子栏目。
{dede:channel type='son' noself='yes'}
<li><a href='[field:typelink/]'>[field:typename/]</a></li>
{/dede:channel}
type='son':调用当前栏目的直接子栏目。noself='yes':不显示当前栏目本身。
调用栏目交叉内容
利用 crossid 字段,可以在一个栏目页面显示另一个栏目的文章列表。
{dede:arclist titlelen='30' row='10' channelid='1' crossid='1'}
<li><a href="[field:arcurl/]">[field:title/]</a></li>
{/dede:arclist}
crossid='1':这里表示调用与当前栏目有关联的ID为1的栏目的内容。
实际应用场景
- 制作网站导航:使用
{dede:channel type='top'...}标签生成主导航。 - 面包屑导航页或列表页,使用
{dede:field name='position' /}生成类似 “首页 > 科技前沿 > 人工智能” 的路径。 - 侧边栏分类列表:在网站的侧边栏,使用
{dede:channel type='son'...}显示某个特定栏目(如“产品分类”)下的所有子分类。 - SEO优化:为每个栏目单独设置
description和keywords,让每个栏目页面都有独立的SEO标题和描述。 - 单页应用:创建一个
arctype,将其isdefault设置为“单页模型”,在content字段中填写“关于我们”的详细内容,即可生成一个独立的“关于我们”页面。
arctype 是织梦CMS的骨架,它不仅仅是内容的容器,更是网站结构、URL、模板逻辑和SEO策略的集合体,熟练掌握 dede_arctype 表的结构以及相关的模板标签,是高效使用和二次开发织梦CMS的关键所在,无论是搭建一个简单的企业官网,还是构建一个复杂的内容门户网站,都离不开对 arctype 的深刻理解和灵活运用。
