织梦栏目id与文档id如何关联与调用?

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

核心概念:它们是什么?

想象一下一个图书馆,织梦CMS就是一个数字图书馆系统。

织梦栏目id与文档id
(图片来源网络,侵删)

栏目ID (TypeID)

  • 是什么? 栏目ID 是指“书架”或“图书分类”的编号。
  • 作用: 它用于组织和归类内容,你的网站可以有“公司新闻”、“产品中心”、“联系我们”等栏目,每个栏目都有一个唯一的ID。
  • 数据来源: 存储在数据库的 dede_arctype 表中,你可以通过“后台 -> 栏目管理”来查看和修改所有栏目及其ID。
  • 核心功能:
    • 内容分类: 将具有相同主题的文章或内容归入同一个栏目下。
    • 导航生成: 网站的导航菜单通常就是根据栏目结构生成的。
    • 权限控制: 可以设置不同栏目的发布权限和管理权限。
    • URL路径: 栏目的URL通常包含其ID,/plus/list.php?tid=1,这里的 1 就是栏目ID。

栏目是“容器”,栏目ID是这个容器的唯一编号。

文档ID (ID)

  • 是什么? 文档ID 是指“单本书籍”或“单篇文章”的编号。
  • 作用: 它是网站中具体内容的唯一标识,每一篇新闻、每一个产品、每一张图片集,都是一个文档,都有一个唯一的ID。
  • 数据来源: 存储在数据库的 dede_archives 表中,你可以通过“后台 -> 内容管理 -> 所有文档”来查看所有文档及其ID。
  • 核心功能:
    • 内容唯一标识: 确保每篇文章在系统中都是独一无二的。
    • URL定位: 文档的详情页URL通常包含其ID,/plus/view.php?aid=100,这里的 100 就是文档ID。
    • 数据关联: 文档通过 typeid 字段与它所属的栏目ID关联起来。

文档是“内容”,文档ID是这个内容的唯一编号。


两者的关系与区别

特性 栏目ID (TypeID) 文档ID (ID)
本质 分类/容器 的ID 内容/实体 的ID
数据表 dede_arctype dede_archives
关系 一对多:一个栏目下可以包含多个文档。 多对一:一个文档只能属于一个栏目(除非使用多级栏目)。
作用 组织、分类、导航 标识、展示具体内容
URL示例 .../list.php?tid=1 (栏目列表页) .../view.php?aid=100 (文档详情页)
模板调用 {dede:channel} {dede:arclist}, {dede:field}

核心关系: 文档ID(aid)通过 dede_archives 表中的 typeid 字段,与栏目ID(tid)建立联系,当你查看某个栏目下的所有文档时,系统实际上是在 dede_archives 表中查找 typeid 等于该栏目ID的所有记录。


实际应用场景与示例

理解了概念,我们来看看在后台和模板中如何使用它们。

织梦栏目id与文档id
(图片来源网络,侵删)

场景1:后台操作

  • 发布文章时:

    • 你需要选择一个栏目(比如选择“公司新闻”,其TypeID为 5)。
    • 然后填写文章标题和内容。
    • 点击“确定”发布后,系统会生成一篇新文档,假设它的ID(ID)是 150
    • 在数据库的 dede_archives 表中,会新增一条记录,id 字段是 150typeid 字段是 5
  • 修改文章时:

    • 你可以在“所有文档”中找到ID为 150 的那篇文章。
    • 你也可以进入“栏目管理”,点击ID为 5 的“公司新闻”栏目,然后查看该栏目下的所有文章,其中就包括ID为 150 的那篇。

场景2:模板调用(最常用)

这是开发者最需要掌握的部分。

示例1:调用“公司新闻”栏目(TypeID=5)下的所有文章

织梦栏目id与文档id
(图片来源网络,侵删)

在模板文件(如 index.htm)中,你会使用 {dede:arclist}

{dede:arclist typeid='5' titlelen='30' row='10'}
    <li>
        <a href="[field:arcurl/]">[field:title/]</a>
        <span>[field:pubdate function="MyDate('Y-m-d',@me)"/]</span>
    </li>
{/dede:arclist}
  • typeid='5':这里的 5 就是栏目ID,告诉织梦只从这个栏目里取文章。
  • [field:arcurl/]:这是当前文章的URL,内部会自动拼接成 .../view.php?aid=[文章ID] 的形式。
  • [field:title/]:这是当前文章的标题。

示例2:获取当前栏目ID(在栏目列表页或详情页)

在栏目列表页(list_xxx.htm)或文档详情页(article_xxx.htm)中,你可能需要知道当前所在栏目的ID。

当前栏目的ID是:{dede:field.id/}
  • {dede:field.id/}:这个标签在列表页和详情页中,会自动输出当前栏目的栏目ID (TypeID)

示例3:获取当前文档ID(在文档详情页)

在文档详情页(article_xxx.htm)中,你可能需要知道当前文章的ID。

当前文档的ID是:{dede:field.id/}
  • 注意: 在详情页,{dede:field.id/} 输出的是当前文档的文档ID (ID),这与列表页的行为不同,织梦会根据当前页面环境智能地判断这个 id 指的是什么。

如何查找这两个ID?

  1. 查找栏目ID:

    • 登录织梦后台。
    • 点击菜单栏的“核心” -> “栏目管理”。
    • 在栏目列表中,每一行最左边的一列数字就是该栏目的栏目ID
  2. 查找文档ID:

    • 登录织梦后台。
    • 点击菜单栏的“核心” -> “内容管理” -> “所有文档”。
    • 在文档列表中,每一行最左边的一列数字就是该文档的文档ID
栏目ID (TypeID) 文档ID (ID)
比喻 书架号 书的ISBN号
作用 分类、组织 标识具体内容
关系 1个栏目ID -> N个文档ID 1个文档ID -> 1个栏目ID
关键 放在哪里 是什么

掌握这两个ID,就像掌握了图书馆的“索引卡”,你可以快速地找到任何一个分类(栏目),也能精确定位到任何一本书(文档),无论是日常的内容管理,还是网站的模板开发,都离不开对它们的灵活运用。

-- 展开阅读全文 --
头像
C语言中long long类型如何定义?
« 上一篇 01-23
哪些网站仍在用织梦默认模板?
下一篇 » 01-23

相关文章

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