WordPress获取指定时间的文章

WordPress如何展示特定时间段内发布的文章。这仅仅是一个基础查询问题,是一定可以实现的。大家可能第一想到的就是query_posts这个方法,但网上写这个方法的参考大多是一些基础查询,而针对这种较为“冷门”的并没有太多回答。其实使用WP_Query类我们轻松就能查询到。 日期相关参数 和文章日

WordPress如何展示特定时间段内发布的文章。这仅仅是一个基础查询问题,是一定可以实现的。大家可能第一想到的就是query_posts这个方法,但网上写这个方法的参考大多是一些基础查询,而针对这种较为“冷门”的并没有太多回答。其实使用WP_Query类我们轻松就能查询到。

日期相关参数

和文章日期有关的查询,有 9 个参数:
year(整数):4 位数的年份,比如 2014
monthnum(整数):月份,从 1 到 12
w(整数):周,从 0 到 53
day(整数):日,从 1 到 31
hour(整数):小时,从 0 到 23
minute(整数):分钟,从 0 到 60
second(整数):秒,从 0 到 60
m(整数):年月,比如 201409
date_query(数组):复杂的日期查询
year(整数):4 位数的年份,比如 2014
month(整数):月份,从 1 到 12
week(整数):周,从 0 到 53
day(整数):日,从 1 到 31
hour(整数):小时,从 0 到 23
minute(整数):分钟,从 0 到 59
second(整数):秒,从 0 到 59
before(字符串 | 数组):开启查询日期,可以是能被 strtotime() 函数解析的日期字符串,还可以使用数组:
year(整数):4 位数的年份,比如 2014,默认为空
month(整数):月份,从 1 到 12,默认是 1
day(整数):日,从 1 到 31,默认是 1
after(字符串 | 数组):结束查询日期,可以是能被 strtotime() 函数解析的日期字符串,还可以使用数组:
year(整数):4 位数的年份,比如 2014,默认为空
month(整数):月份,从 1 到 12,默认是 12
day(整数):日,从 1 到 31,默认是本月最后一天
inclusive(布尔):before 和 after 是否包含所指定本日的文章
compare(字符串):使用什么比较符号(=、!=、>、>=、<、<=、IN、NOT IN、BETWEEN、NOT、BETWEEN) column(字符串):匹配的日期字段,默认是 post_date relation(字符串):条件的逻辑关系,OR(或者)或 AND(和)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
//获取 2012 年 12 月 12 日的文章
$query = new WP_Query( ‘year=2012&monthnum=12&day=12’ );
//或
$args = array(
    ‘date_query’ => array(
        array(
            ‘year’  => 2012,
            ‘month’ => 12,
            ‘day’   => 12,
        ),
    ),
);
$query = new WP_Query( $args );
//获取今天发布的文章
$today = getdate();
$query = new WP_Query( ‘year=’ . $today[‘year’] . ‘&monthnum=’ . $today[‘mon’] . ‘&day=’ . $today[‘mday’] );
//或者
$today = getdate();
$args = array(
    ‘date_query’ => array(
        array(
            ‘year’  => $today[‘year’],
            ‘month’ => $today[‘mon’],
            ‘day’   => $today[‘mday’],
        ),
    ),
);
$query = new WP_Query( $args );

获取本周发布的文章

1
2
3
$week = date( ‘W’ );
$year = date( ‘Y’ );
$query = new WP_Query( ‘year=’ . $year . ‘&w=’ . $week );

或者

1
2
3
4
5
6
7
8
9
$args = array(
    ‘date_query’ => array(
        array(
            ‘year’ => date( ‘Y’ ),
            ‘week’ => date( ‘W’ ),
        ),
    ),
);
$query = new WP_Query( $args );

获取上午 10 点到下午 6 点的文章

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
$args = array(
    ‘date_query’ => array(
        array(
            ‘hour’      => 10,
            ‘compare’   => ‘>=’,
        ),
        array(
            ‘hour’      => 18,
            ‘compare’   => ‘<=’,
        ),
        array(
            ‘dayofweek’ => array( 2, 6 ),
            ‘compare’   => ‘BETWEEN’,
        ),
    ),
    ‘posts_per_page’ => 1,
);
$query = new WP_Query( $args );

获取 2013 年 1 月 1 日到 2013 年 2 月 18 日的文章
包含 2013 年 1 月 1 日和 2013 年 2 月 18 日的文章:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
$args = array(
    ‘date_query’ => array(
        array(
            ‘after’     => ‘January 1st, 2013’,
            ‘before’    => array(
                ‘year’  => 2013,
                ‘month’ => 2,
                ‘day’   => 28,
            ),
            ‘inclusive’ => true,
        ),
    ),
    ‘posts_per_page’ => 1,
);
$query = new WP_Query( $args );

不包含 2013 年 1 月 1 日和 2013 年 2 月 18 日的文章:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
$args = array(
    ‘date_query’ => array(
        array(
            ‘after’     => ‘January 1st, 2013’,
            ‘before’    => array(
                ‘year’  => 2013,
                ‘month’ => 2,
                ‘day’   => 28,
            ),
            ‘inclusive’ => false,
        ),
    ),
    ‘posts_per_page’ => 1,
);
$query = new WP_Query( $args );

获取在一年前发布却在一个月前修改过的文章

1
2
3
4
5
6
7
8
9
10
11
12
13
14
$args = array(
    ‘date_query’ => array(
        array(
            ‘column’ => ‘post_date_gmt’,
            ‘before’ => ‘1 year ago’,
        ),
        array(
            ‘column’ => ‘post_modified_gmt’,
            ‘after’  => ‘1 month ago’,
        ),
    ),
    ‘posts_per_page’ => 1,
);
$query = new WP_Query( $args );

您已阅读完《wordpress(共168篇)》专题的第 70 篇。请继续阅读该专题下面的文章:

    购买必读
    本站模板没有任何后门,也不会和我们服务器有任何通信,请您放心使用。
    本源码一次性买断,没有二次费用,并享受免费更新。
    在使用本站模板时,请不要使用我们的产品从事违反中华人民共和国法律、违反公序良俗的活动,否则我们有权拒绝服务,并配合有关单位予以处置。如果您不符合条件,请勿购买。
    售后是指通过QQ与客服联系处理问题,售后过期不影响您对主题的使用和更新。免费三个月售后服务。售后服务时间为工作日早9点到晚5点。如果不在线可以QQ留言,我们会尽快给您答复。
    售后服务包括程序的使用、BUG的处理、意见建议等。不包括技术服务、网站优化、二次开发、环境配置、服务器运维等。
    代码类商品属于数字化商品,具有可复制性,不支持退款,详见《网络交易管理办法》第二章 第16条 第三类。
    请仔细阅读我们的用户协议:用户协议

    给TA打赏
    共{{data.count}}人
    人已打赏
    wordpress教程

    WordPress调试查询耗时打印

    2023-12-9 15:46:16

    wordpress教程

    WordPress文章排序(WP_Query)

    2023-12-9 15:46:17

    0 条回复 A文章作者 M管理员
      暂无讨论,说说你的看法吧

    线

    专属客服

    (工作日 10:00 - 22:30 为您服务)

    2026-09-21 00:09:09

    您好,无论是售前、售后、意见建议……均可通过联系工单与我们取得联系。

    猜你想问:

    • 购买的模板免费包安装吗?

    • 这个演示地址有吗?

    • 购买vip会员可以下载哪些模板?

    您的工单我们已经收到,我们将会尽快跟您联系!
    取消

    您想了解哪方面的问题?

    选择聊天工具: