我们可以使用WP_Query中的date参数显示在特定日期发布的帖子。 但是,该功能是基本的。 我们可以按日期,年份和月份查询帖子,但无法在特定时间范围内查询帖子。 曾经是受害者,我曾使用过hack 。
但是(感谢贡献代码的 Alex Millis )在最近发布的3.7版中,WordPress包含了Advanced Date Query ,它使我们能够使用WP_Query
本地显示更复杂的基于日期的帖子查询。 这样,我们可以显示在特定时间之前或之后发布的帖子。 让我们来看看它。
高级日期查询
3.7版引入了一个名为date_query
的新参数。 你如何使用它?
假设您正在新闻网站上工作,并希望突出显示上一周的新闻(或帖子)。 通过使用date_query
,我们可以这样写:
$last_week_news = new WP_Query( array(
'date_query' => array(
array(
'after' => '1 week ago',
),
),
'posts_per_page' => 5,
));
$query = new WP_Query( $last_week_news );
我们还可以在非常特定的时间范围内显示帖子 。 下面是一个示例,显示了我们如何显示2012年12月15日至2013年1月15日之间的帖子。这有助于从今年年底到新年故事的转折。
$new_year_stories = new WP_Query( array(
'date_query' => array(
array(
'after' => 'December 15th, 2012',
'before' => 'January 15th, 2013',
),
),
'posts_per_page' => 5,
));
$query = new WP_Query( $new_year_stories );
而且,如前所述,我们还可以显示在特定时间发布的帖子。
如果您的新闻网站需要包含早间新闻位,则可以使用date_query
编写此代码。
$morning_news = array(
'date_query' => array(
array(
'hour' => 6,
'compare' => '>=',
),
array(
'hour' => 9,
'compare' => '<=',
),
),
'posts_per_page' => 10,
);
$query = new WP_Query( $morning_news );
它更简单,直接,并且代码更具可读性。
最终思想
随着高级日期查询的添加, WP_Query
变得更加广泛。 如果在您的站点上跟踪日期很重要,例如,如果您是活动的组织者或主持多个会议或会议,则此新功能无疑将非常有用。
有关更多参考,您可以转到WordPress Codex页面获取Date Parameters 。