如何在织梦内容管理系统的列表页中将文章发布时间显示为今天或昨天?

要将织梦列表页的文章发布时间修改为“昨天”,请按照以下步骤操作:,,1. 登录织梦后台,找到需要修改的列表页模板文件,通常位于/templets/default/list_article_{id}.htm。,2. 打开模板文件,找到以下代码:,“html,{dede:field name='pubdate' function='GetDateMK(@me)'/},`,3. 将上述代码替换为以下代码:,`html,{dede:field name='pubdate' function='GetDateMK(@me)' runphp='yes'}, if (time() @me``,4. 保存模板文件并更新缓存。,,列表页的文章发布时间应该已经显示为“昨天”了。

在织梦(DedeCMS)中,如果你想在列表页将文章的发布时间修改为“昨天”,你需要对模板文件进行一定的修改,以下是具体的步骤和示例代码:

如何在织梦内容管理系统的列表页中将文章发布时间显示为今天或昨天?

1. 找到列表页模板文件

你需要找到列表页的模板文件,在织梦中,列表页的模板文件通常位于/templets/default/ 目录下,文件名可能是list_article.htm 或类似的名字。

2. 修改模板文件中的时间输出

打开这个模板文件,找到显示文章发布时间的地方,你会看到类似这样的代码:

{dede:field name='pubdate' function='MyDate("md, Y",@me)'/}

这段代码的意思是调用一个名为MyDate 的函数,将文章的发布时间格式化为 “md, Y” 的形式。

3. 替换为自定义函数

为了实现“昨天”的效果,我们需要编写一个新的函数来替代MyDate,在include/arc.archives.class.php 文件中添加新的函数:

function MyTodayYesterday($time, $format = 'Ymd') {
    $today = strtotime(date('Ymd'));
    $yesterday = strtotime(date('Ymd', strtotime('1 day')));
    
    if ($time >= $today) {
        return "quot;;
    } elseif ($time >= $yesterday) {
        return "昨天";
    } else {
        return date($format, $time);
    }
}

这个函数会判断给定的时间戳是今天的日期、昨天的日期还是其他日期,并返回相应的字符串。

4. 更新模板文件中的调用

回到你的模板文件,将原来的时间输出代码替换为新的函数调用:

{dede:field name='pubdate' function='MyTodayYesterday'/}

当你查看列表页时,文章的发布时间应该已经变成了“昨天”的格式。

5. 注意事项

确保你的服务器时区设置正确,以便date() 函数能够准确计算日期。

如何在织梦内容管理系统的列表页中将文章发布时间显示为今天或昨天?

如果你的网站有多个语言版本,你可能需要在每个版本的模板文件中都进行类似的修改。

在进行任何修改之前,请备份你的模板文件和包含文件。

FAQs

Q1: 如果我想进一步自定义时间的显示格式怎么办?

A1: 你可以在MyTodayYesterday 函数中添加更多的条件分支,以支持更多的时间描述,前天”、“上周”、“上个月”等,只需根据需要扩展条件判断即可。

Q2: 这个修改会影响文章详细页的时间显示吗?

A2: 不会,这个修改只影响列表页的时间显示,如果你也想改变文章详细页的时间显示,你需要找到详细页的模板文件(通常是article_article.htm),并在那里应用相同的修改。

功能描述 实现步骤 代码示例
将文章发布时间修改为“昨天” 1. 修改织梦CMS的系统设置
2. 使用PHP代码判断文章发布时间
系统设置修改 进入织梦后台
选择“系统设置”
找到“时间格式”选项
修改为“Ymd”(或其他格式,根据需要)
无需代码,直接修改设置
PHP代码示例 在文章模板或相关PHP文件中添加以下代码 ```php

<?php

// 获取当前时间

$now = time();

// 获取文章发布时间

$post_time = $arcrows['pubdate'];

如何在织梦内容管理系统的列表页中将文章发布时间显示为今天或昨天?

// 判断时间并输出“或“昨天”

if ($now $post_time < 86400) {

echo "quot;;

} elseif ($now $post_time < 172800) {

echo "昨天";

} else {

echo date("Ymd", $post_time);

?>

``` |

|注意 | 以上代码需要在织梦模板的合适位置插入。<br> 确保PHP环境支持此代码。<br> 可能需要根据实际模板和数据库结构调整代码。 | 代码仅供参考,实际使用时可能需要调整。 |

原创文章,作者:未希,如若转载,请注明出处:https://www.kdun.com/ask/1189057.html

本网站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。

(0)
未希新媒体运营
上一篇 2024-10-09 02:04
下一篇 2024-10-09 02:05

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

产品购买 QQ咨询 微信咨询 SEO优化
分享本页
返回顶部
云产品限时秒杀。精选云产品高防服务器,20M大带宽限量抢购 >>点击进入