dede arclist调用描述长度怎么控制?

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

description

要调用文章的描述,你只需要在 arclist 标签内使用 description 这个属性即可。

dede arclist 调用描述
(图片来源网络,侵删)

基础用法:显示完整描述

这是最简单的调用方式,它会显示文章在后台设置的“或“内容描述”字段的完整内容。

语法:

{dede:arclist description='yes'}
    <a href='[field:arcurl/]'>[field:title/]</a>
    <p>[field:description/]</p>
{/dede:arclist}

参数说明:

  • description='yes':表示开启调用描述的功能,你也可以写成 description='1',效果一样。
  • [field:description/]:这是具体的字段名,用于在模板中输出描述内容。

高级用法:限制描述字数

在实际应用中,我们通常不希望显示一整段冗长的描述,而是希望截取前几十个字符作为摘要,这样页面更美观,这时就需要用到 infoleninfo 这两个参数。

dede arclist 调用描述
(图片来源网络,侵删)

语法:

{dede:arclist description='yes' infolen='100' info=''}
    <a href='[field:arcurl/]'>[field:title/]</a>
    <p>[field:description/]</p>
{/dede:arclist}

参数详解:

参数 说明 示例
description yes1 (必须) 声明要调用描述字段。 description='yes'
infolen 数字 (重要) 设置描述显示的最大长度(单位:字节,一个汉字=2字节,一个字母=1字节)。 infolen='100' 表示显示最多100个字节。
info textcut (重要) 设置描述的截断方式。 info='text':默认值,按字数截断,可能会截断一个词。
info='cut':按字数严格截断,保证长度正好。

完整示例与最佳实践

下面是一个综合了上述所有知识点的完整示例,这是在实际网站开发中最常用的写法。

场景: 在首页调用最新文章列表,每篇文章显示标题、描述)和发布时间。

dede arclist 调用描述
(图片来源网络,侵删)
<h2>最新文章</h2>
<ul class="article-list">
    {dede:arclist 
        typeid='0' 
        titlelen='30' 
        row='10' 
        orderby='pubdate' 
        orderway='desc'
        description='yes' 
        infolen='100' 
        info='cut'
    }
        <li>
            <!-- [field:arcurl/] 是文章链接 -->
            <a href="[field:arcurl/]" title="[field:title/]">[field:title/]</a>
            <!-- [field:description/] 是文章摘要,会被 infolen 和 info 参数控制 -->
            <p class="summary">[field:description/]</p>
            <!-- [field:pubdate/] 是发布时间,可以格式化 -->
            <span class="date">[field:pubdate function="MyDate('Y-m-d', @me)"/]</span>
        </li>
    {/dede:arclist}
</ul>

代码解释:

  1. typeid='0': 调用所有栏目的文章,如果只想调用某个栏目,填入其ID即可,如 typeid='1'
  2. titlelen='30': 标题最多显示30个字节。
  3. row='10': 调用10篇文章。
  4. orderby='pubdate' orderway='desc': 按发布时间倒序排列(最新的在前)。
  5. description='yes' infolen='100' info='cut': 这是调用描述的核心组合,表示“开启描述功能,最多显示100个字节,并严格按字数截断”。
  6. [field:pubdate function="MyDate('Y-m-d', @me)"/]: 这是一个函数用法,用于格式化日期,将其显示为 年-月-日 的格式,更美观。

补充说明:description 字段来源

你需要知道,arclist 调用的 description 字段内容来自哪里,在 DedeCMS 后台发布文章时,有两个地方可以设置描述:

  1. 推荐)

    • 在文章编辑页面的顶部,有一个“输入框。
    • 这是 arclist 调用的默认来源,强烈建议在这里填写文章的精炼摘要,因为这既可用于列表页显示,也可用于 SEO 的 meta description
  2. 内容描述(不推荐用于列表)

    • 在编辑器下方,有一个“选项”区域,里面有“内容描述”输入框。
    • 这个字段通常用于 SEO 的 meta description,摘要”为空,系统会从这里取值。
    • 不推荐arclist 中直接调用这个字段,因为它和 description 字段是同一个来源,优先级低于“。

常见问题排查

问:为什么我设置了 infolen,但描述显示的长度不对? 答: infolen 的单位是字节,而不是字符,如果你的描述中包含很多英文字母或数字,100个字节可能包含超过50个字符,反之,如果全是汉字,100个字节就是50个汉字,请根据你的内容类型调整这个数值。

问:为什么我的描述后面有 [...] 或者奇怪的字符? 答: 这通常是 infolen 截断位置不当造成的,如果截断点正好在一个 HTML 标签(如 <p><em>)的中间,会导致标签无法正确闭合,解决方法:

  1. 确保后台摘要干净:摘要里最好不要包含复杂的 HTML 代码。
  2. 使用 info='cut':它能更精确地控制截断,减少出错的概率。
  3. 手动处理:在截断后手动添加省略号,[field:description function='cn_substr(@me, 100)'/...]

希望这份详细的指南能帮助你完全掌握 dede:arclist 调用描述的方法!

-- 展开阅读全文 --
头像
dede arclist如何调用全站内容?
« 上一篇 2025-12-17
dede arclist if判断怎么用?条件语句怎么写?
下一篇 » 2025-12-17

相关文章

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

目录[+]