dede 各栏目 content

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

“栏目”是内容的“容器”或“分类”,而“内容”是存放在这些容器里的具体文章、图片、软件等数据。

dede 各栏目 content
(图片来源网络,侵删)

下面我们从几个方面来详细拆解这个概念。


栏目与内容的核心关系

  1. 层级关系:树状结构 DedeCMS 的栏目是典型的树状(或称目录状)结构,非常直观。

    • 顶级栏目: 网站的一级分类,首页”、“公司简介”、“新闻中心”、“产品展示”。
    • 子栏目: 依附于顶级栏目或其他子栏目下的分类。“新闻中心”下可以有“公司新闻”、“行业动态”、“技术支持”等子栏目。
    • 内容模型: 每个栏目(顶级或子栏目)都可以选择一个“内容模型”,模型定义了该栏目下内容的字段。“新闻中心”可能使用“文章模型”(包含标题、作者、内容、发布时间等),而“产品展示”可能使用“产品模型”(包含产品名称、规格、价格、图片等)。
  2. 一对多关系:一个栏目包含多篇内容 一个栏目(父栏目)可以包含无数篇内容(文章),一个内容(文章)只属于一个最终栏目,即使这个内容被多个栏目调用(通过“栏目交叉”功能),它在数据库中存储时也只记录一个最终的 typeid(栏目ID)。

  3. 动态与静态关系:内容如何呈现

    dede 各栏目 content
    (图片来源网络,侵删)
    • 栏目列表页 (list_XXX.html): 显示某个栏目下的所有内容摘要(标题、图片、简介等)。list_1.html 可能是“新闻中心”的列表页。
    • 内容详情页 (article_XXX.html): 显示单篇内容的完整信息。article_10.html 是 ID 为 10 的那篇文章的详情页。
    • 栏目主页 (index_XXX.html): 如果一个栏目没有子栏目,并且设置了“使用栏目页”,那么它的列表页和主页是同一个页面,如果它有子栏目,它的主页通常是一个封面页,用来展示其下子栏目的概览。

核心数据表:dede_arctypedede_archives

要理解栏目和内容,必须看它们的数据表。

栏目表:dede_arctype

这个表存储了所有栏目的信息,也就是“容器”本身的描述。

  • id: 栏目的唯一ID。
  • reid: 父栏目的ID,如果是顶级栏目,则为0。
  • topid: 顶级栏目的ID,用于快速定位到顶级栏目。
  • typename: 栏目名称,如“公司新闻”。
  • typedir: 栏目目录,用于生成URL,如/news/
  • isdefault: 是否为默认栏目。
  • channeltype: 栏目的内容模型ID,1代表“文章模型”,2代表“图集模型”。
  • content: 栏目介绍,可以在栏目页调用。

内容档案表:dede_archives

这个表存储了所有内容的基础信息,是所有内容模型的“主表”。

  • id: 内容的唯一ID(也是文章ID)。
  • typeid: 内容所属的最终栏目ID,这是连接内容和栏目的核心字段
  • arcrank: 内容状态(-1为审核,0为默认,>0为推荐级别等)。
  • click: 点击量。: 内容标题。
  • pubdate: 发布时间。
  • senddate: 提交时间。
  • mid: 发布者会员ID。

重要提示: dede_archives 只存了标题、时间等通用信息,具体的内容(如文章正文、产品规格等)会根据 channeltype 存在对应的数据模型表中,dede_addonarticle(文章附加表)、dede_addonproduct(产品附加表)等。

dede 各栏目 content
(图片来源网络,侵删)

内容的管理流程

从创建到发布,大致流程如下:

  1. 选择栏目: 在后台发布内容(文章/产品等)时,第一步就是选择它要归属的栏目,你只能选择与你当前权限匹配的、内容模型相符的栏目。

  2. 根据栏目的内容模型,填写相应的字段,在“新闻中心”栏目下发布,就需要填写标题、来源、作者、正文等。

  3. 保存与审核:保存后,会先进入数据库,在 dede_archives 表中生成一条记录,typeid 字段被设置为所选栏目的ID,如果网站开启了审核功能,内容在前台是看不到的(arcrank 字段不为0)。

  4. 生成静态文件: 管理员在后台审核该内容后,可以手动或通过计划任务生成静态文件。

    • 系统会根据 typeid 找到对应的栏目目录(typedir)。
    • 在该目录下,生成一个唯一的详情页文件,如 article_10.html
    • 的信息也会被更新到其所属栏目的列表页(如 list_1.html)中。
  5. 前台访问: 用户点击“新闻中心”链接,访问 list_1.html,看到该栏目的所有文章列表,点击其中一篇文章的标题,跳转到 article_10.html 查看全文。


核心模板标签调用

在模板文件(.htm)中,通过特定的标签来调用栏目和内容。

调用栏目信息

通常用在 head.htmindex.htm 中。

  • 获取当前栏目的名称:

    {dede:field name='typename'/}

    这个标签通常用在列表页(list_xxx.htm页(article_xxx.htm)中,用来显示当前栏目的标题。

  • 获取顶级栏目名称:

    {dede:field name='topid' runphp='yes'}
        $id = @me;
        $sql = "SELECT typename FROM `dede_arctype` WHERE id=$id";
        $row = $dsql->GetOne($sql);
        @me = $row['typename'];
    {/dede:field}
  • 调用所有顶级栏目(导航栏):

    <ul>
      {dede:channel type='top' row='8'}
        <li><a href="[field:typelink/]">[field:typename/]</a></li>
      {/dede:channel}
    </ul>
    • type='top': 只调用顶级栏目。
    • row='8': 调用8个栏目。
    • [field:typelink/]: 栏目链接,会自动生成如 /news//list_1.html
    • [field:typename/]: 栏目名称。

调用栏目内容(文章列表)

这是最常用的标签,用在列表页模板(如 list_article.htm)。

{dede:list pagesize='10' titlelen='40'}
  <li>
    <a href="[field:arcurl/]">[field:title/]</a>
    <span>[field:pubdate function="MyDate('Y-m-d', @me)"/]</span>
    <p>[field:description function="cn_substr(@me, 100)"/]...</p>
  </li>
{/dede:list}
<!-- 分页条 -->
{dede:pagelist listsize='4' iteminfo='共[totalpage]页' listitem='info,index,end,pre,next,pageno'}/}
  • {dede:list}: 循环标签,用于列出栏目下的所有文章。
  • pagesize='10': 每页显示10条,len='40'`: 标题长度限制为40个字符。
  • [field:arcurl/]: 文章详情页的链接,这是最关键的标签。
  • [field:title/]: 文章标题。
  • [field:pubdate...]: 发布时间,通过 function 进行格式化。
  • [field:description...]:
  • {dede:pagelist}: 分页条标签。

常见问题与注意事项

  1. 内容模型与栏目不匹配: 如果你在发布内容时,选择的栏目内容模型是“文章”,但你试图填写“产品”模型才有的字段(如价格),就会出错,请确保栏目和内容模型一致。

  2. 栏目交叉: 有时一篇文章希望同时出现在多个栏目列表中(一篇“重大新闻”既想在“公司新闻”里出现,又想在“行业动态”里出现),这时可以使用“栏目交叉”功能,但要注意,这只是在列表页调用上做了文章,文章本身的 typeid 仍然只有一个,SEO上可能存在权重分散的问题。

  3. 栏目路径与URL: 在后台“栏目管理” -> “修改”栏目时,栏目目录(typedir) 这个字段非常重要,它决定了栏目列表页和内容详情页的URL结构,请谨慎修改,一旦生成静态文件后修改,旧的链接就会失效。

  4. 死链问题: 如果删除了一个栏目,但没有处理该栏目下的所有内容,那么这些内容生成的详情页就会变成“死链”(404错误),正确的做法是:删除栏目前,先将其下的内容移动到其他栏目或删除。

概念 作用 关键表/标签 例子
栏目 分类/容器的组织结构和属性。 dede_arctype 新闻中心产品展示
关系 一对多,一个栏目包含多篇内容。 typeid 字段 文章的 typeid 指向 新闻中心id
URL 栏目决定列表页路径,内容ID决定详情页文件名。 typedir, arcurl /list_1.html (新闻列表), /article_10.html (文章详情)

理解了“栏目是骨架,内容是血肉”这个关系,以及它们在数据库和模板中的具体体现,你就能自如地管理和定制你的 DedeCMS 网站了。

-- 展开阅读全文 --
头像
全国计算机等级考试二级C语言真题如何高效备考?
« 上一篇 2025-12-24
dede channel调用图片代码怎么写?
下一篇 » 2025-12-25

相关文章

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

目录[+]