【问题标题】:Wordpress loop to display posts from newest first, from a certain dateWordpress 循环从某个日期开始显示最新的帖子
【发布时间】:2014-04-15 20:16:29
【问题描述】:

我正在使用自定义循环在某个日期之后显示一些帖子,一次 3 个。它或多或少有效,但排序错误,我希望它首先列出最新的,所以降序?

使用升序几乎可以得到我想要的,但显然这不是正确的顺序。:

当前发布时间为 2012 年 12 月 12 日、17 日、13 日、13 日。

使用降序我得到正确的顺序,但它从最新的帖子开始,而不是从当前的帖子开始,所以像这样

当前发布时间为 2012 年 12 月 12 日、2013 年 3 月 26 日、27 日、28 日。

我想要的是这个:

当前发布时间为 2012 年 12 月 12 日、13 日、13 日、17 日。

我无法让我的循环显示正确的顺序,这里是我的循环:

$args = array(
     'orderby' = > 'date', 
     'order' = > 'DESC', 
     'posts_per_page' = > 3, 
     'offset' = > $offset, 
     'category__in' = > $cat, 
     'post_status' = > 'publish',
     'date_query' = > array(array('after' = > $date)));

所以目前这个循环按照预期的方式下降,但它不是从当前帖子的日期开始,只是从正确的日期开始上升,但这不是我想要显示帖子的顺序。

我的循环参数有什么问题?

【问题讨论】:

    标签: php wordpress loops


    【解决方案1】:

    所以我只是改用了一些hackery并颠倒了我的循环顺序:

    $args = array('orderby' => 'date','order'=>'ASC','posts_per_page'=>3, 'offset' => $offset, 'category__in' => $cat,'post_status' => 'publish',
    'date_query' => array(array('after' => $date ))); 
    $loop = new WP_Query($args);
    $array_rev = array_reverse($loop->posts);
     $loop->posts = $array_rev;
      while($loop->have_posts()) {
        $loop->the_post(); 
        get_template_part( 'sidebar-posts-template' );
    } wp_reset_postdata();
    

    【讨论】:

      猜你喜欢
      • 2019-08-24
      • 2019-07-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-08-24
      • 1970-01-01
      • 1970-01-01
      • 2023-03-10
      相关资源
      最近更新 更多