织梦如何调用栏目文章内容?

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

核心标签:{dede:arclist}

调用栏目文章内容,最核心、最强大的标签就是 {dede:arclist},它可以在任何模板(首页、栏目页、文章页等)中自由调用指定栏目下的文章列表。

织梦调用栏目文章内容
(图片来源网络,侵删)

下面我将详细解释 arclist 的各种用法。


调用当前栏目下的文章(最常用)

这是在栏目页列表页中最常见的用法,即显示当前栏目本身的文章。

场景:你正在 栏目A 的模板文件(如 list_article.htm)中,希望只显示 栏目A 下的文章。

代码示例:

织梦调用栏目文章内容
(图片来源网络,侵删)
<ul>
    {dede:arclist titlelen='30' row='10'}
    <li>
        <a href="[field:arcurl/]">[field:title/]</a>
        <span>[field:pubdate function='MyDate('Y-m-d', @me)'/]</span>
    </li>
    {/dede:arclist}
</ul>

代码解析:

  • {dede:arulist ...}: 开始调用文章列表,len='30'`: 调用文章标题的长度,最多显示30个字符。
  • row='10': 调用文章的数量,共显示10篇。
  • [field:arcurl/]: 调用文章的链接地址。
  • [field:title/]: 调用文章的标题。
  • [field:pubdate ...]: 调用文章的发布日期。
    • function='MyDate('Y-m-d', @me)': 这是一个函数,用于将日期格式化为 年-月-日 的格式。@me 代表当前字段的原始值。
  • {/dede:arclist}: 调用结束。

关键点:在栏目页模板中,如果不指定 typeidarclist 默认就会调用当前栏目下的文章。


调用指定ID栏目下的文章

如果你想在首页或者其他栏目页,调用某个特定栏目(比如ID为 5 的“公司新闻”)的文章,就需要使用 typeid 属性。

场景:在首页上,想显示“产品中心”(栏目ID为 3)的最新5篇文章。

织梦调用栏目文章内容
(图片来源网络,侵删)

代码示例:

<h2>产品中心最新动态</h2>
<ul>
    {dede:arclist typeid='3' titlelen='30' row='5'}
    <li>
        <a href="[field:arcurl/]" title="[field:title/]">[field:title/]</a>
    </li>
    {/dede:arclist}
</ul>

代码解析:

  • typeid='3': 这是最关键的属性!它告诉织梦,请去调用栏目ID为 3 的文章,你可以通过织梦后台的【核心】->【栏目管理】中查看每个栏目的ID。
  • row='5': 只显示5篇文章。"[field:title/]"标签添加title` 属性,有助于SEO和用户体验。

调用多个指定栏目下的文章

如果你希望同时调用几个不同栏目的文章,可以将它们的ID用英文逗号 隔开。

场景:在首页上,同时显示“公司新闻”(ID=5)和“行业资讯”(ID=6)的最新文章。

代码示例:

<h2>新闻资讯</h2>
<ul>
    {dede:arclist typeid='5,6' titlelen='30' row='8'}
    <li>
        <a href="[field:arcurl/]" title="[field:title/]">[field:title/]</a>
        <span class="cat">([field:typename/])</span>
    </li>
    {/dede:arclist}
</ul>

代码解析:

  • typeid='5,6': 调用ID为5和ID为6的栏目下的文章。
  • [field:typename/]: 调用文章所在的栏目名称,这在调用多栏目时非常有用,可以告诉用户这篇文章来自哪个分类。

调用子栏目(包括所有下级栏目)下的文章

你可能需要调用一个栏目及其所有下级栏目的文章,在“产品中心”下,有“产品A”、“产品B”等子栏目,你想在“产品中心”的列表页显示所有这些子栏目的文章。

这时需要使用 typeidsonsonall 属性。

场景:栏目ID为 2 的“产品中心”下有多个子栏目,希望在“产品中心”列表页显示所有子栏目的文章。

代码示例 1:只调用下一级子栏目(不包括孙栏目)

{dede:arclist typeid='2' son='yes' row='10'}
    <li>...</li>
{/dede:arclist}

代码示例 2:调用所有下级栏目(包括子栏目、孙栏目等)

{dede:arclist typeid='2' sonall='yes' row='10'}
    <li>...</li>
{/dede:arclist}

arclist 常用属性总结表

属性名 含义 示例
typeid 指定栏目ID,调用该栏目下的文章。 typeid='5'
row 调用文章的数量。 row='10'
infolen 内容简介长度,字符数。 infolen='120'
orderby 排序方式,常用值:pubdate (发布时间)、click (点击量)、id (文章ID)。 orderby='click'
orderway 排序方式。desc (降序,默认)、asc (升序)。 orderway='desc'
channelid 指定模型ID,用于调用不同模型的文章。 channelid='1' (文章模型)
limit 起始位置, 调用数量。limit='0,5' 表示从第0篇开始,调用5篇。 limit='0,5'
imgwidth & imgheight 缩略图宽度和高度。 imgwidth='100' imgheight='80'
noflag 排除特定属性的文章。noflag='h' 排除头条文章。 noflag='h'

调用文章中的具体内容(正文)

arclist 默认只调用文章的摘要(description),如果想调用文章正文(body)的一部分,可以使用 innertext

场景:在首页显示文章列表,并且每条列表后面附带一小段正文内容。

代码示例:

<ul>
    {dede:arclist row='3'}
    <li>
        <strong><a href="[field:arcurl/]">[field:title/]</a></strong>
        <p>
            [field:body/]
        </p>
    </li>
    {/dede:arclist}
</ul>

⚠️ 重要提醒:

直接使用 [field:body/] 会调用文章的全部正文内容,这会导致页面非常臃肿,加载速度慢,并且可能破坏页面布局。

正确做法是截取正文的一部分,通常配合 function 函数实现:

<ul>
    {dede:arclist row='3'}
    <li>
        <strong><a href="[field:arcurl/]">[field:title/]</a></strong>
        <p>
            <!-- 截取body内容前200个字符,并过滤掉HTML标签 -->
            [field:body function='cn_substr(html2text(@me), 200)'/]...
        </p>
    </li>
    {/dede:arclist}
</ul>

代码解析:

  • html2text(@me): 将正文中的HTML标签(如 <p>, <br>)过滤掉,只保留纯文本。
  • cn_substr(..., 200): 从纯文本中截取前200个字符。
  • 手动添加省略号,表示内容未显示完。

总结与最佳实践

  1. 明确需求:首先确定你要在哪个页面调用,调用哪个栏目,调用多少篇文章,以及需要显示哪些字段(标题、日期、正文等)。
  2. 核心标签{dede:arclist} 是你的万能钥匙。
  3. 获取栏目ID:去后台【栏目管理】中找到目标栏目的ID。
  4. 灵活使用属性:通过 typeid, row, titlelen, orderby 等属性精准控制输出内容。
  5. 注意性能:避免在首页等关键位置调用过多文章或过长的正文内容,这会影响网站加载速度。
  6. 善用函数:对于日期格式化、内容截取等操作,熟练使用 function 属性能让你的模板更强大、更灵活。

希望这份详细的指南能帮助你完全掌握在织梦中调用栏目文章内容的方法!

-- 展开阅读全文 --
头像
朱战立数据结构(C语言版)适合零基础学习吗?
« 上一篇 今天
dede缩略图src路径如何正确获取?
下一篇 » 今天

相关文章

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