织梦CMS如何调用固定栏目?

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

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

这是最核心的用法,通常用于首页、频道页等位置,展示某个特定栏目下的文章。

织梦cms调用固定栏目
(图片来源网络,侵删)

标签说明

主要使用 arclist 标签,并通过 typeid 属性来指定栏目ID。

  • typeid: 核心属性,指定要调用哪个栏目的文章,值为栏目的数字ID,如果调用多个栏目,用英文逗号隔开,如 typeid='1,2,3'
  • row: 显示的文章数量。row='10' 表示显示10篇文章。
  • titlelen: 标题长度。titlelen='30' 表示标题最多显示30个字符(一个汉字算一个字符)。
  • infolen简介长度。infolen='100'
  • orderby: 排序方式,常用值:
    • sortrank (默认): 按文章排序级别排序。
    • pubdate: 按发布时间排序。
    • click: 按点击量排序。
    • id: 按文章ID排序。
  • channelid: 指定频道ID,默认为1(文章频道),如果你的栏目属于其他频道(如图片集、下载等),需要指定相应的ID。
  • limit: 限制起始和结束。limit='0,10' 表示从第0篇开始,共显示10篇,等同于 row='10'limit='10,5' 表示从第10篇开始,显示5篇。

代码示例

假设我们要调用 栏目ID为 1 的栏目下的 10篇文章,按 发布时间倒序 排列,标题长度 限制在30个字符

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

代码解释:

  • {dede:arclist typeid='1' ...}: 调用栏目ID为1的文章列表。
  • [field:arcurl/]: 文章的链接地址。
  • [field:title function='htmlspecialchars(@me)'/]: 文章标题,使用htmlspecialchars函数处理,防止特殊字符导致页面显示错误或XSS攻击。@me代表当前字段的原始值。
  • [field:title/]: 直接显示文章标题。
  • [field:pubdate function="MyDate('Y-m-d', @me)"/]: 文章发布时间,使用MyDate函数格式化为 年-月-日 的格式。

调用指定栏目的子栏目列表

当你想在某个栏目页(如“新闻中心”)里显示它所有的一级子栏目(如“国内新闻”、“国际新闻”)时,使用 channel

标签说明

  • typeid: 指定父栏目的ID,如果不填,默认从顶级栏目开始调用,如果指定了ID,则调用该栏目下的所有子栏目。
  • row: 显示的子栏目数量。
  • typeid: 父级栏目ID。

代码示例

假设 栏目ID为 5 的栏目是“新闻中心”,它下面有多个子栏目,我们要调用这些子栏目。

织梦cms调用固定栏目
(图片来源网络,侵删)
<ul class="sub-category-list">
    {dede:channel typeid='5'}
        <li>
            <a href="[field:typeurl/]">[field:typename/]</a>
        </li>
    {/dede:channel}
</ul>

代码解释:

  • {dede:channel typeid='5'}: 调用栏目ID为5的“新闻中心”下的所有子栏目。
  • [field:typeurl/]: 子栏目的链接地址。
  • [field:typename/]: 子栏目的名称。

调用指定栏目的封面文章列表

如果你的栏目设置了“封面模板”,并且希望调用该栏目下的封面文章(通常是置顶或推荐的文章),可以使用 arclist 并设置 channelartlist

标签说明

  • {dede:channelartlist}: 这个标签用于指定一个或多个频道/栏目作为上下文。
  • typeid: 在 channelartlist 中使用,指定要操作的栏目ID。
  • {dede:arclist}: 在 channelartlist 标签内部使用,此时它默认调用的是 channelartlist 所指定栏目下的文章,无需再写 typeid

代码示例

调用 栏目ID为 3 的封面文章。

{dede:channelartlist typeid='3'}
    <h2 class="category-title">[field:typename/]</h2>
    <div class="cover-articles">
        {dede:arclist row='5' titlelen='20'}
            <a href="[field:arcurl/]" title="[field:title/]">[field:title/]</a>
        {/dede:arclist}
    </div>
{/dede:channelartlist}

代码解释:

  • {dede:channelartlist typeid='3'}: 将上下文限定在ID为3的栏目。
  • [field:typename/]: 显示当前栏目的名称,即ID为3的栏目名。
  • 内部的 {dede:arclist} 会自动调用ID为3的栏目下的文章,typeid可以省略。

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

你可能需要调用一个栏目以及它所有下级栏目的文章,在“新闻中心”栏目页,显示“新闻中心”本身和“国内”、“国际”等所有子栏目的文章。

织梦cms调用固定栏目
(图片来源网络,侵删)

标签说明

arclist 标签中,使用 typeidtopid 的组合。

  • typeid: 指定起始栏目ID。
  • topid: 设置为 'this',表示调用 typeid 指定的栏目及其所有下级栏目。

代码示例

调用 栏目ID为 5 的“新闻中心”及其所有子栏目的文章。

{dede:arclist typeid='5' topid='this' row='15' orderby='pubdate'}
    <div class="news-item">
        <h3><a href="[field:arcurl/]" title="[field:title/]">[field:title/]</a></h3>
        <p class="summary">[field:description/]...</p>
        <p class="meta">发布于:[field:pubdate function="MyDate('Y-m-d', @me)"]</p>
    </div>
{/dede:arclist}

如何找到栏目ID?

这是新手最常遇到的问题,找到栏目ID非常简单:

  1. 登录你的织梦后台。
  2. 在左侧菜单栏点击 “栏目管理”
  3. 在栏目列表中,将鼠标光标移动到你想要调用的栏目名称上。
  4. 查看浏览器左下角状态栏,你会看到一个链接,链接的末尾部分就是该栏目的ID。
    • http://www.yoursite.com/dede/catalog_add.php?cid=5,那么这个栏目的ID就是 5
    • 或者直接看栏目列表的ID列。
需求场景 推荐标签 关键属性
调用单个栏目的文章列表 {dede:arclist} typeid='栏目ID'
调用栏目的子栏目列表 {dede:channel} typeid='父栏目ID'
调用指定栏目的封面文章 {dede:channelartlist} + {dede:arclist} typeid='栏目ID' (写在channelartlist里)
调用栏目及其子栏目的文章 {dede:arclist} typeid='栏目ID' topid='this'

掌握以上几种方法,你就可以在织梦CMS中灵活地调用各种固定栏目了,在实际使用中,可以根据你的页面布局和设计需求,调整 arclist 标签中的各种属性来获得最理想的效果。

-- 展开阅读全文 --
头像
织梦发帖功能源代码如何实现与优化?
« 上一篇 今天
dede文章页面模板文件是什么?
下一篇 » 今天

相关文章

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