织梦首页调用栏目内容

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

调用指定栏目下的文章列表(最常用)

这是最基础也是最常用的方法,通常用于在首页展示某个特定栏目(如“公司新闻”、“产品中心”)的最新几篇文章。

核心标签:

  • {dede:channel}:获取栏目列表信息。
  • {dede:arclist}:获取文章列表信息。

场景:

假设你的网站首页有一个“最新动态”模块,你想调用“公司新闻”栏目(栏目ID为 1)的最新5篇文章。

代码示例:

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

代码详解:

  • {dede:arclist ...}:这是调用文章列表的主标签。
  • typeid='1'最重要的参数,表示只调用栏目ID为 1 的文章,如果你要调用多个栏目,用逗号隔开,typeid='1,3,5',如果留空或为 0,则调用所有顶级栏目的文章,len='30'`:标题长度,截取30个字符,防止标题过长影响布局。
  • row='5':调用文章的数量,这里是5篇。
  • orderby='pubdate':排序方式,按发布日期降序排列(最新的在最前面),其他常用值:id(按文章ID)、click(按点击量)、rand(随机)。
  • [field:arcurl/]:文章的链接地址。
  • [field:title/]:文章的标题。
  • [field:pubdate function="MyDate('Y-m-d',@me)"/]:文章的发布日期,这里使用了 function 对日期进行了格式化,'Y-m-d' 是你想要的输出格式(如 2025-10-27)。

调用指定栏目及其子栏目的文章列表

当你想在一个模块里展示一个父栏目及其所有子栏目的文章时,就需要用到这个方法。

核心标签:

  • {dede:sonchannel}:获取当前栏目的子栏目列表。
  • {dede:arclist}:结合子栏目ID进行调用。

场景:

假设“产品中心”是父栏目(ID为 2),下面有“产品A”、“产品B”等子栏目,你想在首页展示“产品中心”及其所有子栏目的最新产品。

代码示例:

<h2>产品中心</h2>
<ul>
    {dede:sonchannel type='self' row='100'}
        {dede:arclist typeid='[field:id]' titlelen='30' row='3' orderby='pubdate'}
        <li>
            <a href="[field:arcurl/]">[field:title/]</a>
        </li>
        {/dede:arclist}
    {/dede:sonchannel}
</ul>

代码详解:

  • {dede:sonchannel type='self' row='100'}
    • type='self':表示获取当前栏目(父栏目)的子栏目。type='top' 则表示获取顶级栏目。
    • row='100':获取子栏目的数量,设置一个足够大的数字以防遗漏。
  • [field:id]:这是 {dede:sonchannel} 循环中的变量,代表每个子栏目的ID。
  • typeid='[field:id]':将 {dede:arclist}typeid 参数设置为当前循环的子栏目ID,从而实现对每个子栏目分别调用文章。

调用指定栏目简介(描述)

你不仅想展示栏目下的文章,还想展示这个栏目的简介或描述。

核心标签:

  • {dede:field}:用于获取当前栏目的字段信息。

场景:

在“关于我们”栏目模块,展示该栏目的描述内容。

代码示例:

<h2>关于我们</h2>
<p>{dede:field name='description'/}</p>

代码详解:

  • {dede:field name='description'/}name='description' 指定了要获取的字段是“栏目描述”,在后台“栏目管理” -> “高级选项” -> “栏目描述”中填写的内容就会在这里显示。
  • 这个标签通常放在 {dede:channel} 循环内部,以获取特定栏目的描述。
    {dede:channel typeid='3'}
        <h2><a href="[field:typelink/]">[field:typename/]</a></h2>
        <p>[field:description/]</p>
    {/dede:channel}

自由列表(FreeMarker)- 最灵活的方法

如果以上方法不能满足你复杂的调用需求(需要跨栏目、按特定条件筛选、自定义排序等),自由列表”是最佳选择,它允许你像写SQL查询一样自由地定义数据。

操作步骤:

  1. 进入自由列表管理

    • 登录织梦后台。
    • 在左侧菜单找到【核心】 -> 【自由列表管理】。
    • 点击“增加自由列表”。
  2. 配置自由列表

    • 列表名称:给这个列表起个名字,方便识别,如“首页产品推荐”。
    • 列表模板:选择一个用于展示列表的模板文件(如 default/list_product.htm),或者直接在下方输入代码。
    • 命名规则:可以自定义生成列表页的URL规则,一般保持默认即可。
    • 频道选择:选择你要查询的数据所在的频道(通常是“文章频道”)。
    • 按SQL语句查询:这是最关键的一步,在这里输入你的自定义SQL语句。
  3. 编写SQL语句

    场景:调用栏目ID为 12 的文章,标题包含“织梦”或“CMS”,按发布日期倒序排列,只取10条。

    SELECT * FROM `dede_archives` a
    LEFT JOIN `dede_arctype` t ON a.typeid = t.id
    WHERE (a.typeid IN (1,2) AND a.title LIKE '%织梦%' OR a.title LIKE '%CMS%')
    AND a.arcrank > -1
    ORDER BY a.pubdate DESC
    LIMIT 0, 10
    • dede_archives 是文章主表,dede_arctype 是栏目表。
    • a.typeid IN (1,2):指定栏目ID。
    • a.title LIKE '%织梦%'模糊匹配。
    • a.arcrank > -1:这是一个重要条件,表示只审核通过的文章(-1表示未审核)。
    • LIMIT 0, 10:从第0条开始,取10条。
  4. 在首页调用: 创建好自由列表后,系统会生成一个特殊的标签,你可以在首页模板中直接使用。

    {dede:freelist titlelen='40' row='10'}
        <li>
            <a href="[field:arcurl/]">[field:title/]</a>
            <span>[field:pubdate function="MyDate('Y-m-d',@me)"/]</span>
        </li>
    {/dede:freelist}

    这个标签的用法和 {dede:arclist} 几乎一样,但数据源是你自定义的SQL。


总结与建议

方法 适用场景 优点 缺点
{dede:arclist} 调用单一或多个栏目的文章列表 简单、高效、常用 功能相对固定,不够灵活
{dede:sonchannel} 调用父栏目及其子栏目的文章 结构清晰,适合展示分类内容 需要嵌套标签,代码稍复杂
{dede:field} 获取栏目描述等基本信息 直接、方便 功能单一,只能获取栏目本身信息
自由列表 复杂的、自定义的数据查询 极其灵活,功能最强大 需要编写SQL,对新手有一定门槛

给新手的建议

  • {dede:arclist} 开始:90% 的首页栏目调用需求都可以用它解决。
  • 善用后台测试:在后台的【模板】 -> 【模板测试】中,你可以实时预览 {dede:arclist} 等标签的输出结果,非常方便调试。
  • 了解栏目ID:在后台【栏目管理】中,鼠标移到栏目名称上,浏览器左下角会显示该栏目的ID,这是调用时最重要的参数。
  • 遇到复杂需求再考虑自由列表:当 arclist 无法满足你的筛选、排序等需求时,再花时间学习自由列表,它会为你打开新世界的大门。

希望这份详细的指南能帮助你顺利地在织梦首页调用栏目内容!

-- 展开阅读全文 --
头像
哪里能免费下载正版C语言程序设计PDF?
« 上一篇 今天
织梦首页调用文件是哪个?
下一篇 » 今天

相关文章

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

目录[+]