dede文章发布时间如何修改或自定义?

99ANYc3cd6
预计阅读时长 14 分钟
位置: 首页 DEDE建站 正文
  1. 如何设置和修改文章的发布时间(后台操作)。
  2. 如何在前台模板中调用和显示文章的发布时间(前端开发)。

下面我将为你详细讲解这两个方面。


后台设置文章发布时间

当你发布或编辑一篇文章时,可以非常方便地设置它的发布时间。

发布新文章时设置时间

  1. 登录你的 DedeCMS 后台。

  2. 进入“内容管理” -> “添加文档”。

  3. 在文章编辑页面,找到“发布时间”这一项,它通常是一个日期时间选择器。

  4. 默认值是当前的服务器时间,你可以直接点击选择一个未来的日期和时间,也可以手动输入。

  5. 填写好其他内容后,点击“发布”按钮。

效果:设置一个未来的时间后,文章会保存在你的网站后台,但不会在前台显示,只有当系统时间到达你设定的时间点时,文章才会自动在前台出现,这非常适合做内容定时发布。

修改已发布文章的时间

  1. 进入“内容管理” -> “所有文档”。
  2. 找到你想要修改的文章,点击“编辑”。
  3. 在编辑页面,同样找到“发布时间”字段,修改为你需要的时间。
  4. 点击“保存”按钮即可。

前台模板调用文章发布时间

这是网站开发者在制作模板时最关心的部分,DedeCMS 使用特定的模板标签来调用数据库中的数据。

基本调用标签

在文章列表页(如 list_article.htm)或文章内容页(如 article_article.htm)中,使用以下标签来调用文章的发布时间:

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

标签解析

  • {dede:field.pubdate}: 这是调用文章发布时间字段的核心标签。pubdate 是数据库中存储发布时间的字段名。
  • function='...': 这是一个函数修饰符,用来对获取到的原始时间进行格式化。
  • strftime(): 是 PHP 的一个格式化时间的函数。
  • "%Y-%m-%d %H:%M:%S": 这是格式化字符串,定义了时间的显示方式。
    • %Y: 四位数的年份 ( 2025)
    • %m: 两位数的月份 ( 08)
    • %d: 两位数的日期 ( 15)
    • %H: 24小时制的小时 ( 14)
    • %M: 分钟 ( 30)
    • %S: 秒 ( 25)
  • @me: 代表 {dede:field.pubdate} 标签本身获取到的原始值。

常用时间格式示例

你可以根据需要修改格式字符串,实现不同的显示效果:

显示效果 标签代码 说明
2025-08-15 {dede:field.pubdate function='strftime("%Y-%m-%d",@me)'/} 只显示年月日,最常用。
2025/08/15 {dede:field.pubdate function='strftime("%Y/%m/%d",@me)'/} 使用斜线分隔。
08-15-2025 {dede:field.pubdate function='strftime("%m-%d-%Y",@me)'/} 美国格式。
2025年08月15日 {dede:field.pubdate function='strftime("%Y年%m月%d日",@me)'/} 中文格式。
15 Aug 2025 {dede:field.pubdate function='strftime("%d %b %Y",@me)'/} 英文月份缩写。
2025年08月15日 14:30 {dede:field.pubdate function='strftime("%Y年%m月%d日 %H:%M",@me)'/} 中文格式,带时分。
刚刚 / 1小时前 / 3天前 {dede:field.pubdate function='GetDateMK(@me)'/} 智能相对时间,非常人性化。

特别说明 GetDateMK 函数GetDateMK 是 DedeCMS 自定义的一个非常有用的函数,它会自动将时间转换为“刚刚”、“几分钟前”、“几小时前”、“几天前”这种相对时间格式,极大地提升了用户体验,在很多新闻或博客网站的列表页中都会使用这个。

在不同模板中的使用

  • 在文章列表页 (list_article.htm): 通常在 {dede:list} 循环标签内使用,用来显示每篇文章的发布时间。

    {dede:list pagesize='10'}
    <li>
        <a href="[field:arcurl/]">[field:title/]</a>
        <span class="time">{dede:field.pubdate function='strftime("%Y-%m-%d",@me)'/}</span>
    </li>
    {/dede:list}
  • 页 (article_article.htm): 直接在页面需要显示的位置使用即可。

    <div class="article-info">
        <span>发布时间:{dede:field.pubdate function='strftime("%Y-%m-%d %H:%M:%S",@me)'/}</span>
        <span>作者:{dede:field.author/}</span>
        <span>来源:{dede:field.source/}</span>
    </div>
  • 在首页或其他栏目封面页 (index.htm, index_default.htm): 通常在 {dede:arclist} 循环标签内使用。

    {dede:arclist typeid='1' titlelen='30' row='5'}
    <div class="entry">
        <h2><a href="[field:arcurl/]">[field:title/]</a></h2>
        <p class="meta">[field:pubdate function='GetDateMK(@me)'/]</p>
    </div>
    {/dede:arclist}

常见问题与解决方法

问题1:为什么我修改了后台的时间,前台显示的时间没有变?

可能原因及解决方法

  1. 模板缓存问题:DedeCMS 为了提高速度,会生成静态文件或缓存,你修改了数据,但缓存没有更新。
    • 解决:登录后台,点击“生成” -> “更新主页HTML” 或 “更新栏目HTML”,或者直接点击“一键更新网站”来刷新缓存。
  2. 使用了缓存标签:在模板中可能使用了 {dede:cache} 标签,导致内容被缓存。
    • 解决:检查模板文件,找到并移除 {dede:cache}...{/dede:cache} 标签对。
  3. 文章已生成静态:如果你的文章设置为“仅动态浏览”,修改后会立即生效,但如果已经生成了静态HTML文件,你需要重新生成该文章的静态文件。
    • 解决:在后台“内容管理” -> “所有文档”中,找到该文章,点击“更新”按钮,系统会重新生成它的静态文件。

问题2:我想显示文章的更新时间,而不是发布时间,怎么办?

解决方法

DedeCMS 默认没有“更新时间”这个字段,但你可以利用 senddate 字段来模拟它。senddate 通常记录的是文章最后被修改的时间。

  1. 在后台编辑文章时,修改内容后点击“保存”,senddate 字段就会自动更新为当前时间。
  2. 在模板中,将 pubdate 换成 senddate 即可。
<!-- 显示更新时间 -->
{dede:field.senddate function='strftime("%Y-%m-%d %H:%M:%S",@me)'/}

如果你需要更精确地记录更新时间,可以在后台添加一个自定义字段(如 updatetime),然后在文章编辑时手动填写或通过二次开发自动记录。

希望这份详细的指南能帮助你完全掌握 DedeCMS 文章发布时间的设置和调用!

-- 展开阅读全文 --
头像
织梦默认模板批量替换
« 上一篇 04-01
C语言socket为何出现乱码?
下一篇 » 04-01
取消
微信二维码
支付宝二维码

目录[+]