dede如何调用指定单日文章列表?

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

调用指定某一天的所有文章(最常用)

这是最核心的需求,调用2025年10月26日这一天的所有文章。

dede调用某一天的文章列表
(图片来源网络,侵删)

核心代码

{dede:arclist len='30' 
    row='10' 
    orderby='pubdate' 
    orderway='desc'
    startdate='2025-10-26'
    enddate='2025-10-26'
}
    <li>
        <a href="[field:arcurl/]">[field:title/]</a>
        <span>[field:pubdate function="MyDate('Y-m-d H:i',@me)"/]</span>
    </li>
{/dede:arclist}

代码详解

  1. startdate='2025-10-26':

    • 这是关键参数,指定了文章列表的开始日期
    • 日期格式为 YYYY-MM-DD
  2. enddate='2025-10-26':

    • 这是另一个关键参数,指定了文章列表的结束日期
    • 当开始日期和结束日期是同一天时,就实现了“调用某一天”的效果。
  3. row='10':

    表示调用10篇文章,你可以根据需要修改这个数字。

    dede调用某一天的文章列表
    (图片来源网络,侵删)
  4. orderby='pubdate':

    表示按文章发布时间排序。

  5. orderway='desc':

    • 表示按降序排列(最新的在前),如果改为 asc,则为升序(最旧的在前)。
  6. titlelen='30':

    最多显示30个字符,超出部分用省略号。

  7. [field:arcurl/]:

    文章的链接地址。

  8. [field:title/]:

  9. [field:pubdate function="MyDate('Y-m-d H:i',@me)"/]:

    • 文章的发布时间,这里使用了function对时间进行了格式化,显示为 年-月-日 时:分 的格式,你也可以直接使用 [field:pubdate/],但它会显示Unix时间戳。

调用指定某一天的特定栏目文章

如果你想只调用“公司新闻”这个栏目在2025年10月26日发布的文章,可以在上面的基础上增加 typeid 参数。

核心代码

假设“公司新闻”栏目的ID是 2

{dede:arclist 
    typeid='2'len='30' 
    row='10' 
    orderby='pubdate' 
    orderway='desc'
    startdate='2025-10-26'
    enddate='2025-10-26'
}
    <li>
        <a href="[field:arcurl/]">[field:title/]</a>
        <span>[field:pubdate function="MyDate('Y-m-d H:i',@me)"/]</span>
    </li>
{/dede:arclist}

新增参数详解

  • typeid='2':
    • 指定只调用栏目ID为 2 的文章下的内容。
    • 如果要调用多个栏目,用英文逗号隔开,typeid='2,5,8'

动态获取今天或昨天的文章列表

有时候我们希望代码是动态的,比如自动调用“或“昨天”发布的文章,而不是手动修改日期,这可以通过DedeCMS的标签功能实现。

调用今天发布的文章

{dede:arclist len='30' 
    row='10' 
    orderby='pubdate' 
    orderway='desc'
    startdate='{dede:php}echo date("Y-m-d");{/dede:php}'
    enddate='{dede:php}echo date("Y-m-d");{/dede:php}'
}
    <li>
        <a href="[field:arcurl/]">[field:title/]</a>
        <span>[field:pubdate function="MyDate('Y-m-d H:i',@me)"/]</span>
    </li>
{/dede:arclist}

调用昨天发布的文章

{dede:arclist len='30' 
    row='10' 
    orderby='pubdate' 
    orderway='desc'
    startdate='{dede:php}echo date("Y-m-d", strtotime("-1 day"));{/dede:php}'
    enddate='{dede:php}echo date("Y-m-d", strtotime("-1 day"));{/dede:php}'
}
    <li>
        <a href="[field:arcurl/]">[field:title/]</a>
        <span>[field:pubdate function="MyDate('Y-m-d H:i',@me)"/]</span>
    </li>
{/dede:arclist}

代码详解

  • {dede:php}echo date("Y-m-d");{/dede:php}:
    • 这是一个PHP代码块。date("Y-m-d") 会获取当前服务器的日期,格式为 YYYY-MM-DD
    • 这样,startdateenddate 的值就会动态地设置为今天的日期。
  • strtotime("-1 day"):
    • 这是PHP的时间函数,用于计算“一天前”的Unix时间戳,再用 date() 函数格式化成日期字符串,从而得到昨天的日期。

总结与注意事项

  1. 首选方法:对于调用“某一天”的文章,方法一 (startdateenddate 设为同一天) 是最标准、最高效的。
  2. 栏目限制:如果需要限制栏目,务必加上 typeid 参数。
  3. 动态日期:如果需要动态显示“或“昨天”,使用 方法三 的PHP代码块,非常灵活。
  4. 日期格式startdateenddate 的日期格式务必是 YYYY-MM-DD,否则可能导致调用失败。
  5. 缓存问题:如果修改了代码后前台没有立即生效,请清空一下DedeCMS的缓存(后台 -> 系统 -> 站点缓存 -> 刷新全部缓存)。

希望这些方法能帮助你解决问题!

-- 展开阅读全文 --
头像
dede修改友情链接的织梦链怎么操作?
« 上一篇 01-11
dede自定义表单如何加入验证码?
下一篇 » 01-11

相关文章

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

目录[+]