我正在运行此查询以打印我的帖子。它有效,但我想添加一个参数,告诉系统只显示今天发布的帖子或将来发布的帖子!
以下是查询:
$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
这样的事情但是没有用。
拜托,谁能告诉我怎么做?
我的想法是告诉查询只显示发布日期为今天或“少于”今天的帖子。这就是" <= "
。
答案 0 :(得分: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();
应该这样做。
答案 1 :(得分:2)
您是否都发现未来的帖子只能供管理员或作者查看?我想列出所有未来的帖子标题给非成员,当我查询'future'时,查询总是返回0个帖子,除非我以管理员身份登录。
对返回的0结果数组执行var转储我发现了各种未设置的设置,一个suppress_filters引起了我的注意,因此将其设置为1(true)我得到了我想要的结果。
所有有这个问题的人我找到了解决方案,在查询中只有一个额外的设置'suppress_filters'=&gt; '1'
所以例如
$args = array (
'post_status' => 'future',
'suppress_filters' => '1'
);
$query = new WP_Query($args);
通过谷歌搜索几个小时后,我找不到这个简单的解决方案。但希望它可以帮助其他人。
答案 2 :(得分:0)
这种方法对我有用,它使用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);
它查询从当天(当前时间之前或之后)到未来的所有帖子。