dede如何调用文章字段?

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

DedeCMS 调用字段主要通过两个核心标签:{dede:field}{dede:arclist}


核心标签:{dede:field}

这个标签主要用于在文章的内容页 (article_article.htm) 中调用当前文章的详细信息。

基本语法:

{dede:field.字段名 /}

或者

{dede:field.字段名 function='htmlspecialchars(@me)'/}

常用字段列表:

| 字段名 | 说明 | 示例 | | :--- | :--- | :--- | | 文章标题 | {dede:field.title /} | | shorttitle | 文章简略标题 | {dede:field.shorttitle /} | | description | 描述 | {dede:field.description /} | | writer | 作者 | {dede:field.writer /} | | source | 来源 | {dede:field.source /} | | pubdate | 发布时间(时间戳格式) | {dede:field.pubdate /} | | senddate | 录入时间(时间戳格式) | {dede:field.senddate /} | | click | 点击次数 | {dede:field.click /} | | id | 文章ID | {dede:field.id /} | | typeid | 所属栏目ID | {dede:field.typeid /} | | arclink | 文章链接(自动生成) | <a href="{dede:field.arclink /}">查看原文</a> | | body | 文章正文内容 | {dede:field.body /} | | litpic | 文章缩略图 | <img src="{dede:field.litpic /}" alt="{dede:field.title /}"> |


时间格式化

pubdatesenddate 默认输出的是 Unix 时间戳(如 1715683200),这显然不是我们想要的,我们可以使用 function 属性来格式化时间。

语法:

{dede:field.pubdate function='strftime("%Y-%m-%d %H:%M:%S", @me)'/}

常用格式化代码:

  • %Y-%m-%d2025-05-14
  • %Y年%m月%d日2025年05月14日
  • %Y-%m-%d %H:%M2025-05-14 15:30
  • %Y-%m-%d %H:%M:%S2025-05-14 15:30:45

示例: 在文章模板中,我们通常这样调用发布时间:

发布时间:{dede:field.pubdate function='strftime("%Y-%m-%d %H:%M", @me)'/}

在列表页调用字段:{dede:arclist}

{dede:field} 只能在文章内容页使用,如果你想在列表页 (list_*.htm)、首页 (index.htm) 或其他自定义页面调用文章字段,就需要使用 {dede:arclist}

基本语法:

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

常用属性:

属性名 说明 示例
typeid 调用指定栏目ID下的文章,多个ID用逗号隔开 typeid='1,2'
row 调用文章的数量 row='10'
infolen 摘要长度 infolen='100'
imgwidth / imgheight 缩略图宽度和高度 imgwidth='200' imgheight='150'
channelid 模型ID,默认为1(文章) channelid='1'
flag 特殊属性,如 'h' (头条), 'c' (推荐), 'a' (特荐) flag='h'
noflag 排除特殊属性 noflag='h' (调用非头条文章)

{dede:arclist} 内部的字段调用:

{dede:arclist}{/dede:arclist} 之间,字段的调用方式略有不同,使用 [field:字段名 /] 的格式。

| 字段名 | 说明 | 示例 | | :--- | :--- | :--- | | 文章标题 | [field:title /] | | shorttitle | 文章简略标题 | [field:shorttitle /] | | description | | [field:description /] | | writer | 作者 | [field:writer /] | | source | 来源 | [field:source /] | | pubdate | 发布时间(时间戳) | [field:pubdate function='strftime("%Y-%m-%d", @me)'/] | | click | 点击次数 | [field:click /] | | id | 文章ID | [field:id /] | | arcurl | 文章链接 | [field:arcurl /] | | litpic | 文章缩略图 | [field:litpic /] |

示例:调用首页最新文章列表

{dede:arclist row='5' titlelen='30' orderby='pubdate'}
    <div class="news-item">
        <img src="[field:litpic/]" alt="[field:title/]">
        <h3><a href="[field:arcurl/]">[field:title/]</a></h3>
        <p class="info">发布时间:[field:pubdate function='strftime("%Y-%m-%d", @me)'/]</p>
    </div>
{/dede:arclist}

调用自定义字段

这是 DedeCMS 灵活性的重要体现,除了系统自带字段,你还可以在后台添加自定义字段。

步骤:

  1. 登录 DedeCMS 后台。
  2. 进入「核心」 -> 「内容模型管理」。
  3. 点击你想要修改的模型(通常是“文章模型”)。
  4. 点击「字段管理」,添加一个新的字段(字段名为 yuyan,字段别名为“语言”)。

如何调用:

  • 页 ({dede:field}): 直接调用即可,DedeCMS 会自动识别。

    语言:{dede:field.yuyan /}
  • 在列表页/首页 ({dede:arclist}): 默认情况下,{dede:arclist} 不会调用自定义字段,你需要使用 addfields 属性来指定需要调用的自定义字段。

    语法:

    {dede:arclist addfields='自定义字段名1,自定义字段名2' ...}
        ...
        [field:自定义字段名1 /]
        [field:自定义字段名2 /]
        ...
    {/dede:arclist}

    示例: 假设我们添加了一个自定义字段 dizhi(地址)。

    {dede:arclist typeid='1' row='3' addfields='dizhi'}
        <li>
            <a href="[field:arcurl/]">[field:title/]</a>
            <p>地址:[field:dizhi/]</p>
        </li>
    {/dede:arclist}

    注意: 使用 addfields 后,列表的查询效率会略有下降,请谨慎使用。


常用函数和技巧

  1. 去除 HTML 标签 有时我们只需要纯文本,比如截取摘要时不想包含 <p> 等标签。

    {dede:field.description function='htmlspecialchars(@me)'/}  // 转义HTML
    {dede:field.description function='html2text(@me)'/}      // 去除所有HTML标签
  2. 截取字符串 对于标题或摘要,常常需要截取一定长度。

    {dede:field.title function='cn_substr(@me, 20)'/}  // 截取标题前20个字符
  3. 判断字段是否为空 如果某个字段(如缩略图)可能为空,可以使用 if 标签来判断。

    {dede:field.litpic runphp='yes'}
        if(@me == '') {
            @me = '<img src="/images/default.jpg" alt="默认图片">'; // 如果为空,显示默认图片
        } else {
            @me = '<img src="' . @me . '" alt="' . @me . '">'; // 如果不为空,显示原图
        }
    {/dede:field.litpic}
场景 字段格式 示例
{dede:field} {dede:field.字段名 /} {dede:field.title /}
列表/首页 {dede:arclist} [field:字段名 /] [field:title /]
列表调用自定义字段 {dede:arclist} [field:自定义字段名 /] 需配合 addfields 属性
时间格式化 function strftime('格式', @me) function='strftime("%Y-%m-%d", @me)'

希望这份详细的指南能帮助你完全掌握 DedeCMS 中文章字段的调用!

-- 展开阅读全文 --
头像
织梦后台不能复制文章
« 上一篇 03-29
自定织梦提示信息修改
下一篇 » 03-29

相关文章

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