织梦CMS如何添加发布时间?

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

核心概念:发布时间字段

织梦CMS的文章发布时间存储在数据库的 dede_archives 表中,字段名为 pubdate,它是一个 Unix 时间戳(从1970年1月1日开始的秒数),在模板调用时,织梦会自动将其转换为你设定的格式。

织梦cms如何添加发布时间
(图片来源网络,侵删)

在文章列表页添加/修改发布时间

这通常指的是首页、栏目页、搜索结果页等展示文章摘要的地方,操作的核心是修改对应的模板文件

步骤 1:找到并打开模板文件

你需要根据修改的位置找到对应的模板文件:

  • 网站首页:模板文件通常是 /templets/default/index.htm
  • 栏目页:模板文件通常是 /templets/default/list_artlist.htm/templets/你的栏目目录/list_栏目ID.htm
  • 文章列表(如文章频道):模板文件通常是 /templets/default/article_list.htm

提示/templets/default/ 是默认模板目录,如果你使用了其他模板,请替换成你自己的模板目录。

步骤 2:在模板中添加发布时间调用代码

在列表循环代码(通常是 {dede:arclist}{dede:list} 标签)内部,你希望显示时间的位置,加入以下代码:

织梦cms如何添加发布时间
(图片来源网络,侵删)
[field:pubdate function='strftime("%Y-%m-%d %H:%M:%S",@me)'/]

代码解析:

  • [field:pubdate ... /]:这是调用文章的 pubdate 字段。
  • function='...':表示对字段值进行函数处理。
  • strftime:是PHP中一个强大的时间格式化函数。
  • "%Y-%m-%d %H:%M:%S":这是格式化字符串,你可以自由修改:
    • %Y:四位数的年份(如 2025)
    • %m:两位数的月份(如 01, 02, ..., 12)
    • %d:两位数的日期(如 01, 02, ..., 31)
    • %H:24小时制的小时(如 00, 01, ..., 23)
    • %M:分钟(如 00, 01, ..., 59)
    • %S:秒(如 00, 01, ..., 59)
    • 你也可以使用其他格式,
      • "%Y年%m月%d日" -> 2025年10月27日
      • "%m-%d" -> 10-27
      • "%Y/%m/%d %H:%M" -> 2025/10/27 15:30

完整示例

假设你想在首页文章列表的标题下方显示发布时间,可以这样做:

  1. 打开 /templets/default/index.htm
  2. 找到文章列表循环部分,代码类似这样:
    {dede:arclist titlelen='30' row='10'}
    <li>
        <a href="[field:arcurl/]">[field:title/]</a>
        <!-- 在这里添加发布时间 -->
    </li>
    {/dede:arclist}
  3. <a> 标签后添加时间调用代码:
    {dede:arclist titlelen='30' row='10'}
    <li>
        <a href="[field:arcurl/]">[field:title/]</a>
        <span class="time">[field:pubdate function='strftime("%Y-%m-%d",@me)'/]</span>
    </li>
    {/dede:arclist}
  4. 为了让时间样式更好看,你可以在CSS文件中(如 /templets/default/style/dedecms.css)添加:
    .time {
        color: #999;
        font-size: 12px;
        margin-left: 10px;
    }

页添加/修改发布时间

页的模板文件通常是 /templets/default/article_article.htm

步骤 1:打开内容页模板文件

找到并打开 /templets/default/article_article.htm

织梦cms如何添加发布时间
(图片来源网络,侵删)

步骤 2:添加发布时间调用代码

作者等信息旁边,添加调用代码,通常使用 {dede:field} 标签来调用文章的单个字段。

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

代码解析:

  • {dede:field.pubdate ... /}:这是调用文章内容页的 pubdate 字段的一种方式,比 [field:pubdate] 更明确。
  • 同样,function='strftime(...)' 用于格式化时间。

完整示例

article_article.htm 中,你可能找到类似这样的代码:

<h1 class="title">{dede:field.title/}</h1>
<div class="info">
    <span>作者:{dede:field.writer/}</span>
    <span>来源:{dede:field.source/}</span>
    <!-- 在这里添加发布时间 -->
</div>

你可以将其修改为:

<h1 class="title">{dede:field.title/}</h1>
<div class="info">
    <span>作者:{dede:field.writer/}</span>
    <span>来源:{dede:field.source/}</span>
    <span>发布时间:{dede:field.pubdate function='strftime("%Y-%m-%d %H:%M",@me)'/}</span>
    <span>点击:{dede:field.click/}</span>
</div>

在后台发布/编辑文章时查看和修改发布时间

虽然模板控制了显示格式,但发布时间的“值”是在后台添加文章时确定的。

  1. 登录织梦CMS后台。

  2. 进入“[核心]” -> “[内容发布]” -> “[添加文档]” 或 “[编辑文档]”。

  3. 在文章编辑界面,你会看到“发布时间”这一项。

    • 它通常默认显示为当前时间。
    • 你可以点击输入框,通过日期时间选择器来修改这个时间。
    • 重要提示:这里修改的是文章的发布时间,会影响它在列表中的排序(默认按发布时间倒序)和所有调用该时间的地方。

常见问题与注意事项

  1. 修改后不生效?

    • 清空缓存:这是最常见的原因,进入后台的“[系统]” -> “[一键更新缓存]”,点击“更新所有缓存”。
    • 检查文件路径:确保你修改的是正确的模板文件,并且模板文件没有被覆盖。
    • 检查标签语法:确保 {dede:arclist} 等列表标签没有写错,并且时间调用代码在标签内部。
  2. 时间显示不正确(时差问题)?

    • 织梦CMS支持时区设置,进入后台“[系统]” -> “[系统基本参数]” -> “[核心设置]”,找到“时间格式”和“时区设置”,确保配置正确,通常设置为 +8 代表东八区。
  3. 能否只显示“X天前”这样的相对时间?

    • 可以,但需要自定义函数,你可以在 /include/extend.func.php 文件中添加一个自定义函数,然后在模板中调用。
      • extend.func.php 中添加:
        function formatTime($smUnixTime, $istime = 0) {
            $zero1 = strtotime(date('Y-m-d', $smUnixTime));
            $zero2 = strtotime(date('Y-m-d', time()));
            $da = $zero2 - $zero1;
            if ($da == 0) {
                return $istime ? date('H:i', $smUnixTime) : '#39;;
            } elseif ($da == 86400) {
                return $istime ? date('H:i', $smUnixTime) : '昨天';
            } elseif ($da == 172800) {
                return $istime ? date('H:i', $smUnixTime) : '前天';
            } else {
                return date('Y-m-d', $smUnixTime);
            }
        }
      • 在模板中调用:
        {dede:field.pubdate function='formatTime(@me)'/}
位置 模板文件 调用代码 说明
文章列表页 index.htm, list_*.htm [field:pubdate function='strftime("格式",@me)'/] {dede:arclist}{dede:list} 循环内使用
article_article.htm {dede:field.pubdate function='strftime("格式",@me)'/} 使用 {dede:field} 标签调用
后台设置 后台发布页面 直接修改“发布时间”输入框 修改的是数据本身,影响所有显示

按照以上步骤,你就可以轻松地在织梦CMS的任何位置添加和自定义文章的发布时间显示了。

-- 展开阅读全文 --
头像
c语言long long int
« 上一篇 2025-12-28
dede getformitem标签如何使用?
下一篇 » 2025-12-28

相关文章

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

目录[+]