如何仅获取带有POST_DATE的当前和过去帖子

时间:2019-09-05 作者:J.BizMai

管理员希望发布未来日期的帖子,但对访问者不可见。这些帖子来自一个定制WP_Query 在我的插件中,基本的WP行为在这种情况下不起作用。

我试过这个:

$args = array(
    \'post_type\' => "my-post-type",
    \'date_query\'          => array(
        \'before\' => \'today\',
        \'inclusive\' => true
    )
);

$args[\'posts_per_page\'] = -1;
...   
return new \\WP_Query( $args );
但如果我用post_date 是今天,它没有出现。如何将帖子包含在post_date 今天之前和今天(现在之前1秒)?

2 个回复
SO网友:Daniel Morell

你需要通过strtotime() 兼容字符串或数组,而不是\'today\'.

你有几个选择。。。

您可以更改\'today\'\'now\'. 这将使用当前时间,而不是昨晚午夜\'today\' 到\'today + 1 day\'. 这将是今天的结束。不完全是你想要的,但值得一提date(\'d-m-Y H:i:s\'). 这是不必要的额外工作,因为它需要像\'now\'.1 是最简单、最容易理解的。

文件编制

https://developer.wordpress.org/reference/classes/wp_query/#date-parameters

https://www.php.net/strtotime

SO网友:David

看起来用户D.Morell已经给了你一个很好的答案,但根据你的故事,你可以很容易地简化整个过程,只需将这些未来帖子的发布日期设置为未来日期,这样在这些日期之前,这些帖子在网站上才可用。