知识问答
如何在dedecms中为最新发布的文章添加new标志?
/templets/default/article_article_list.htm
。在适当的位置添加一个条件判断,如果文章是最新的,就显示"new"标志。,,具体代码如下:,,```html,{dede:arclist type='new' row='10'},,[field:title/], {dede:field name='pubdate' function='MyDate("md",@me)'/}, {dede:field name='click' function='if(@me在DedeCMS中为最新发布的文章添加“new”标志,可以通过修改模板文件来实现,这通常涉及到对{dede:arclist}
标签的使用和对其属性的调整,以下是具体的步骤:
实现方法概述
1、使用runphp参数:通过在模板文件中使用{dede:arclist}
标签的runphp='yes'
参数,可以在列表中调用自定义的PHP代码,从而实现对文章发布日期的判断和标记。
2、判断发布时间:利用PHP的时间函数,如time()
和strftime()
,结合当前时间和文章的发布时间(即字段pubdate
),计算出文章是否为最新发布的(最近三天内)。
3、添加“new”标志:根据判断结果,在文章标题或描述前添加“new”标志,可以是文字形式,也可以是小图片形式。
具体代码示例
以下是一个具体的代码示例,展示了如何在DedeCMS中为最新发布的文章添加“new”标志:
{dede:arclist titlelen='80' row='30'} <ul> <li> <h2><a href="[field:arcurl/]" title="[field:title/]">[field:pubdate runphp='yes'] $tagtime = @me; $ntime = time(); $day3 = 3600 * 24 * 3; if($tagtime > $ntime$day3) @me = "<img src='new.gif' />".$aa; else @me = $aa; [/field:pubdate]</a></h2> <p>[field:description function="cn_substr(@me, 220)"/]...</p> </li> </ul>{/dede:arclist}
在这个示例中:
{dede:arclist}
标签用于调用文章列表。
titlelen='80'
和row='30'
分别设置了文章标题的长度限制和每页显示的文章数量。
[field:pubdate runphp='yes']
开启了runphp模式,允许在模板中嵌入PHP代码。
$tagtime = @me;
获取了文章的发布时间。
$ntime = time();
获取了当前时间。
$day3 = 3600 * 24 * 3;
计算了过去三天的秒数。
if($tagtime > $ntime$day3) @me = "<img src='new.gif' />".$aa; else @me = $aa;
判断了文章是否为最近三天内发布的,如果是,则在文章标题前添加了一个名为new.gif
的小图片作为“new”标志;否则,只显示文章的发布时间。
注意事项
1、图片路径:确保new.gif
图片存在于正确的路径下,否则图片将无法显示。
2、双引号问题:注意在PHP代码中不要使用双引号包围变量名或字符串,否则可能导致代码执行失败。
3、模板调试:在修改模板文件后,建议先在本地环境进行调试,确保代码正确无误后再上传到服务器。
通过以上步骤,你可以在DedeCMS中轻松地为最新发布的文章添加“new”标志,以提升网站的用户体验和互动性。