按时间和日期获取wordpress帖子

时间:2014-02-07 10:31:13

标签: php wordpress-theming wordpress

我正试图按日期和时间获取wordpress帖子, 例如2014年1月1日至2014年5月2日和时间17:10,有人知道吗?

感谢您的帮助

1 个答案:

答案 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查询)并且在某些情况下会完全失败   情况