我正试图按日期和时间获取wordpress帖子, 例如2014年1月1日至2014年5月2日和时间17:10,有人知道吗?
感谢您的帮助
答案 0 :(得分:3)
WP_Query class可以实现这一目标。只需设置一个新查询,传入适当的参数:
$args = array(
'date_query' => array(
// limit to between these dates
array(
'after' => '2014-02-01',
'before' => '2014-02-05', //remove this line if no upper limit
'inclusive' => true,
),
// limit to posts before 17:10 (not tested)
array(
'hour' => 17,
'minute' => 10,
'compare' => '<=',
),
// limit to posts after 08:30
array(
'hour' => 08,
'minute' => 30,
'compare' => '>=',
),
),
'posts_per_page' => -1,
);
$my_date_query = new WP_Query( $args );
然后使用刚刚实例化的查询对象运行循环:
<?php if ( $my_date_query->have_posts() ) : ?>
<!-- the loop -->
<?php while ( $my_date_query->have_posts() ) : $my_date_query->the_post(); ?>
<h2><?php the_title(); ?></h2>
<?php endwhile; ?>
<!-- end of the loop -->
<?php wp_reset_postdata(); ?>
<?php else: ?>
<p><?php _e( 'Sorry, no posts matched your criteria.' ); ?></p>
<?php endif; ?>
日期参数部分可以很好地概述您可以创建的帖子查询类型:http://codex.wordpress.org/Class_Reference/WP_Query#Date_Parameters
N.B 请勿使用query_posts
。来自the codex:
query_posts()是过于简单化和修改main的有问题的方法 通过将其替换为查询的新实例来查询页面。它是 效率低下(重新运行SQL查询)并且在某些情况下会完全失败 情况