4

我正在运行此查询以打印出我的帖子。它可以工作,但我想添加一个参数,告诉系统只显示今天或将来发布的帖子!

这是查询:

$today = getdate();
$year=$today["year"];
$month=$today["mon"];
$day=$today["mday"];

query_posts( $query_string.'order=ASC' .
             '&post.status=future,publish' .
             '&year='.$year .
             '&monthnum='.$month
);

我试图做类似的事情,&post.date = <= $today但没有奏效。

拜托,谁能告诉我怎么做?

我的想法是告诉查询仅显示发布日期为今天或“小于”今天的帖子。这就是为什么" <= ".

4

3 回答 3

2

大家有没有发现以后的帖子只有管理员或作者才能看到?我想向非成员列出所有未来的帖子标题,当我查询“未来”时,查询将始终返回 0 个帖子,除非我以管理员身份登录。

对返回的 0 结果数组进行 var 转储后,我发现各种未设置的设置,其中一个 suppress_filters 引起了我的注意,因此将其设置为 1(真)我得到了我想要的结果。

所以任何有这个问题的人我都找到了解决方案,它只是查询 'suppress_filters' => '1' 中的 1 个额外设置

所以例如

$args = array (
    'post_status'           => 'future',
    'suppress_filters'      => '1'
    );
$query = new WP_Query($args);

通过谷歌搜索几个小时后,我找不到这个简单的解决方案。但是希望它可以帮助其他人。

于 2014-02-18T14:13:39.123 回答
2
$future_args = array(
    'post_status' => 'future'
    // possibly further query arguments
);

$today = getdate();
$today_args = array(
    'year' => $today['year'],
    'monthnum' => $today['mon'],
    'day' => $today['mday'] 
    // possibly further query arguments
);

$future_query = new WP_Query( $future_args );
$today_query = new WP_Query( $today_args );

while ( $today_query->have_posts() ) :
    $today_query->the_post();
    // echo something
endwhile;
wp_reset_postdata();

while ( $future_query->have_posts() ) :
    $future_query->the_post();
    // echo something
endwhile;
wp_reset_postdata();

那应该这样做。

请参阅有关WP_Query 类的 codex 文章以供参考。

于 2013-03-25T00:51:39.163 回答
1

这种方法对我有用,使用 date_query 参数(自 WP 3.7 起可用)。

$args = array(
    'post_status' => 'publish,future',
    'date_query' => array(
        array(
            'after' => date('Y-m-d'),
            'inclusive' => true,
        )
    ),
);

$query = new WP_Query($args);

它查询从当天(当前时间之前或之后)到未来的所有帖子。

于 2019-09-10T20:33:10.047 回答