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

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

arclist

无论是调用文章列表还是单个文章,最核心、最强大的标签都是 {dede:arclist},通过为它设置不同的属性,我们可以实现各种调用需求。

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

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

这是最基础的需求,比如在首页显示“公司新闻”这个栏目的最新5篇文章。

步骤 1:获取目标栏目的 ID

在编写代码之前,你首先需要知道要调用的那个栏目(公司新闻”)的 ID

  1. 登录你的 DedeCMS 后台。
  2. 进入【核心】 -> 【栏目管理】。
  3. 找到你要调用的那个栏目,将鼠标悬停在上面,浏览器左下角会显示链接,类似 javascript:EditSort(1),括号里的数字 1 就是这个栏目的 ID。
  4. 记下这个 ID。

步骤 2:使用 arclist 标签调用内容

在首页模板文件 (index.htm) 的相应位置,插入以下代码:

{dede:arclist typeid='目标栏目ID' titlelen='40' row='5'}
  <li>
    <a href="[field:arcurl/]">[field:title/]</a>
    <span>[field:pubdate function="MyDate('Y-m-d',@me)"/]</span>
  </li>
{/dede:arclist}

代码详解:

  • typeid='目标栏目ID': 这是最关键的属性,它告诉 DedeCMS 只从指定的栏目 ID 下获取文章,如果你的“公司新闻”栏目 ID 是 2,那么这里就写 typeid='2'
  • titlelen='40': 设置标题的长度,这里设置为40个字符(一个汉字算2个字符),超出的部分会被截断。
  • row='5': 设置要调用的文章数量,这里设置为调用5篇文章。
  • <li>: 列表标签,你可以根据自己网站的样式修改,比如用 <div> 等。
  • [field:arcurl/]: 文章的链接地址。
  • [field:title/]: 文章的标题。
  • [field:pubdate function="MyDate('Y-m-d',@me)"/]: 文章的发布日期。
    • pubdate 是发布时间字段。
    • function="MyDate('Y-m-d',@me)" 是一个函数,用来格式化日期。Y-m-d 表示 年-月-日 的格式,你也可以改成 Y-m-d H:i 来显示具体的小时和分钟。

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

你可能希望调用一个顶级栏目(新闻中心”)及其所有子栏目(公司新闻”、“行业动态”)的文章。

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

代码实现:

只需要在 arclist 标签中增加一个 topid 属性即可。

{dede:arclist topid='目标顶级栏目ID' titlelen='40' row='10'}
  <li>
    <a href="[field:arcurl/]">[field:title/]</a>
    <span>[field:pubdate function="MyDate('Y-m-d',@me)"/]</span>
  </li>
{/dede:arclist}

代码详解:

  • topid='目标顶级栏目ID': 这个属性会调用指定顶级栏目(ID)下的所有一级子栏目的内容。
    • 如果你的“新闻中心”栏目 ID 是 1,它下面有子栏目 2(公司新闻)和 3(行业动态),topid='1' 就会同时调用栏目 23 下的文章。

调用指定栏目的文章,并显示缩略图

如果想在列表中显示文章的缩略图,只需在循环内部添加缩略图标签。

代码实现:

{dede:arclist typeid='目标栏目ID' titlelen='40' row='5' imgwidth='120' imgheight='90'}
  <li>
    <a href="[field:arcurl/]">
      <img src="[field:picname/]" alt="[field:title/]" width="120" height="90" />
    </a>
    <a href="[field:arcurl/]">[field:title/]</a>
    <span>[field:pubdate function="MyDate('Y-m-d',@me)"/]</span>
  </li>
{/dede:arclist}

代码详解:

  • imgwidth='120'imgheight='90': 设置缩略图的显示宽度和高度,DedeCMS 会自动获取文章中上传的缩略图,并按此尺寸缩略显示。
  • [field:picname/]: 文章缩略图的地址。
  • alt="[field:title/]": 为图片添加 alt 属性,这对SEO(搜索引擎优化)非常重要。

调用指定栏目的单篇内容(比如栏目简介)

你可能只想调用一个栏目的简介或者置顶的一篇文章,这时可以使用 arclistchannelidrow='1' 属性。

代码实现(调用栏目简介):

{dede:arclist typeid='目标栏目ID' row='1' addfields='description'}
  [field:description/]
{/dede:arclist}

代码详解:

  • typeid='目标栏目ID': 指定栏目。
  • row='1': 只调用一篇。
  • addfields='description': 告诉 DedeCMS 除了默认的字段外,还要额外获取 description(栏目简介/这个字段。

使用SQL语句调用(更灵活,适合高级用户)

arclist 标签无法满足你的复杂需求(需要跨表查询、按特定字段排序等),你可以直接使用SQL查询语句。

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

⚠️ 警告:直接使用SQL有风险,请确保你的SQL语句正确,避免对数据库造成损害。

代码实现:

{dede:sql sql='SELECT * FROM `dede_archives` WHERE `typeid` = 目标栏目ID ORDER BY `pubdate` DESC LIMIT 0,5'}
  <li>
    <a href="[field:arcurl/]">[field:title/]</a>
    <span>[field:pubdate function="MyDate('Y-m-d',@me)"/]</span>
  </li>
{/dede:sql}

代码详解:

  • sql='...': 属性内填写你的SQL语句。
    • SELECT * FROMdede_archives`dedearchives是存储文章主表的表名(你的表前缀可能是dede`,也可能是其他,请根据实际情况修改)。
    • WHEREtypeid= 目标栏目ID: 筛选条件,只查找指定栏目ID的文章。
    • ORDER BYpubdateDESC: 按发布日期降序排列(最新的在前)。
    • LIMIT 0,5: 从第0条记录开始,获取5条记录。
  • [field:arcurl/]: 在 sql 标签中,[field:arcurl/] 的用法和 arclist 中一样,用于生成文章链接。

总结与建议

需求场景 推荐方法 核心标签/属性
调用单个指定栏目的文章列表 方法一 {dede:aristle typeid='ID'}
调用指定栏目及其所有子栏目的文章 方法二 {dede:arclist topid='ID'}
调用文章列表并显示缩略图 方法三 {dede:arclist ... imgwidth='...'}
调用单篇内容(如栏目简介) 方法四 {dede:arclist row='1' addfields='...'}
复杂查询,arclist 无法满足 方法五 {dede:sql sql='...'}

对于绝大多数情况,方法一和方法二已经足够使用。{dede:arclist} 功能非常强大,熟练掌握它的各种属性,就能轻松应对首页大部分的内容调用需求。

-- 展开阅读全文 --
头像
织梦模板本地修改步骤是怎样的?
« 上一篇 昨天
Borland C语言哪里下载?安全吗?能用吗?
下一篇 » 昨天

相关文章

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

目录[+]