dede首页如何调用栏目内容?

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

下面我将从最常用、最简单更灵活、更复杂的顺序,为你详细介绍几种主流的调用方法。

dede 首页调用栏目内容
(图片来源网络,侵删)

使用官方推荐的 {dede:arclist} 标签(最常用、最灵活)

这是 DedeCMS 最强大、最灵活的列表标签,不仅可以用来调用文章,也可以巧妙地用来显示栏目的“内容”,这里的“内容”通常指的是栏目描述

场景1:调用指定栏目的“栏目描述”

这是最常见的需求,比如在首页某个版块显示某个栏目的简介。

标签代码:

{dede:channel type='top' typeid='1'}
    <h2><a href="[field:typelink/]">[field:typename/]</a></h2>
    <p>[field:description function='cn_substr(@me, 200)'/]</p>
{/dede:channel}

代码解析:

dede 首页调用栏目内容
(图片来源网络,侵删)
  • {dede:channel type='top' typeid='1'}:
    • channel: 这是调用栏目的标签。
    • type='top': 表示调用顶级栏目,如果你要调用的是顶级栏目下的子栏目,可以去掉这个属性或改成 type='son'
    • typeid='1': 这是关键,指定你要调用的栏目的 ID,你需要去后台“栏目管理”中找到目标栏目的 ID,如果不写 typeid,则会调用所有符合条件的栏目。
  • [field:typelink/]: 调用栏目的链接地址。
  • [field:typename/]: 调用栏目的名称。
  • [field:description function='cn_substr(@me, 200)'/]:
    • [field:description/]: 调用栏目的“栏目描述”内容。
    • function='cn_substr(@me, 200)': 这是一个函数,表示截取描述内容的前 200 个字符,防止描述过长影响页面布局。@me 代表当前字段的原始值。

示例: 在首页调用 ID 为 1 的“公司新闻”栏目的描述。

<div class="news-intro">
    <h3>公司新闻</h3>
    <p>
        {dede:channel typeid='1'}
            [field:description function='cn_substr(@me, 150)'/]
        {/dede:channel}
    </p>
</div>

场景2:调用指定栏目的最新文章列表

如果你想在首页某个位置显示某个栏目下的最新几篇文章,arclist 标签是最佳选择。

标签代码:

{dede:arclist typeid='1' titlelen='30' row='5' orderby='pubdate'}
    <li>
        <span class='date'>[field:pubdate function='MyDate('m-d', @me)'/]</span>
        <a href="[field:arcurl/]">[field:title/]</a>
    </li>
{/dede:arclist}

代码解析:

dede 首页调用栏目内容
(图片来源网络,侵删)
  • {dede:arclist ...}: 调用文章列表的标签。
  • typeid='1': 指定栏目 ID,只调用该栏目下的文章,len='30'`: 标题长度,截取标题前 30 个字符。
  • row='5': 调用文章的数量,显示 5 条。
  • orderby='pubdate': 按发布时间降序排列(最新的在前)。
  • [field:pubdate function='MyDate('m-d', @me)'/]: 调用发布日期,并使用自定义函数 MyDate 格式化为 "月-日" 的格式。
  • [field:arcurl/]: 调用文章的链接地址。
  • [field:title/]: 调用文章的标题。

使用自由列表 {dede:freelist}(适合固定栏目和文章数)

如果你的首页某个版块的栏目和文章数量是固定的,不常变动,使用自由列表会更高效,因为它是在后台生成静态的,访问首页时直接调用,不消耗数据库查询资源。

操作步骤:

  1. 进入后台:登录 DedeCMS 后台。

  2. 找到自由列表:在左侧菜单栏找到 核心 -> 自由列表

  3. 创建自由列表

    • 列表名称:给这个列表起一个名字,方便识别,如“首页产品展示”。
    • 列表模板:选择一个列表模板,或者使用默认的。
    • 按频道调用:选择你想要调用的内容模型,文章模型”。
    • 栏目选择:勾选你希望在首页显示的栏目(可以多选)。
    • 排序方式:选择排序规则,如“发布时间降序”。
    • 记录数:设置每个栏目显示多少篇文章,或者总共显示多少篇。
    • 其他高级选项可以根据需要设置。
  4. 生成:点击“提交”或“生成”,系统会根据你的设置生成一个静态的列表文件。

  5. 在首页调用: 在首页模板的相应位置,使用以下标签调用:

    {dede:freelist listid='你的自由列表ID'}
        <li>
            <a href="[field:arcurl/]">[field:title/]</a>
        </li>
    {/dede:freelist}
    • listid='你的自由列表ID':这里的 ID 是你在创建自由列表时,系统自动分配的 ID。

使用SQL语句查询(最灵活,适合高级用户)

arclistfreelist 无法满足复杂的查询需求时,可以直接使用原生 SQL 语句,这需要你具备一定的 SQL 基础。

场景: 调用 ID 为 1 的栏目下的所有文章,并按点击量排序。

标签代码:

{dede:sql sql="SELECT id, title, arcurl FROM `dede_archives` WHERE typeid='1' ORDER BY click DESC"}
    <li><a href="[field:arcurl/]">[field:title/]</a></li>
{/dede:sql}

代码解析:

  • {dede:sql sql="..."}: DedeCMS 提供的执行 SQL 查询的标签。
  • SELECT id, title, arcurl FROMdede_archives` 从文章主表dede_archives` 中查询文章 ID、标题和链接。
  • WHERE typeid='1': 条件,只查询栏目 ID 为 1 的文章。
  • ORDER BY click DESC: 按 click 字段(点击量)降序排列。
  • [field:arcurl/][field:title/]: 和 arclist 标签中一样,用于输出查询结果。

⚠️ 安全警告: 直接使用 SQL 存在 SQL 注入的风险,请确保你的 typeid 等变量是固定的或者经过了严格的过滤,不要直接从前台获取参数后拼接到 SQL 中。


总结与推荐

方法 优点 缺点 适用场景
{dede:arclist} 最灵活、最常用,功能强大,可定制性高。 需要记住常用属性,对新手稍复杂。 绝大多数情况,尤其是调用文章列表、带图列表等。
{dede:channel} 专门用于调用栏目信息,代码简洁。 主要用于获取栏目本身的信息(名称、描述、链接),不能直接获取文章。 调用栏目名称、栏目描述、栏目链接等。
{dede:freelist} 访问速度快,首页不消耗数据库资源。 设置相对固定,不够灵活,更新后需手动重新生成。 首页版块固定、更新不频繁的栏目文章展示。
{dede:sql} 功能最强大,可以实现任何复杂的查询逻辑。 有 SQL 注入风险,需要 SQL 基础,可读性差。 arclist 无法实现的特殊需求,如跨表查询、复杂排序等。

给新手的建议:

  1. 先掌握 {dede:arclist}{dede:channel},这两个标签能解决 90% 的首页调用需求。
  2. 调用前,务必去后台“栏目管理”中记下你需要调用的栏目的 ID
  3. 如果某个版块的内容长期不变,为了提升首页访问速度,可以考虑使用 {dede:freelist}

希望这些详细的解释能帮助你顺利地在 DedeCMS 首页调用栏目内容!

-- 展开阅读全文 --
头像
织梦备份还原无数据库,如何恢复数据?
« 上一篇 今天
dede文章如何按字母顺序排列?
下一篇 » 今天

相关文章

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

目录[+]