执行查询后颠倒帖子的顺序

时间:2012-04-03 作者:Squadrons

我正在显示自定义帖子类型“show”的最后5篇帖子。

这给了我最新的帖子。

<?php
$args = array(
    \'post_type\' => \'show\',
    \'posts_per_page\' => 5,
    \'order\' => \'DESC\'
    );
$home_shows = new WP_Query($args);
var_dump($home_shows);
?>
我需要的是,首先是最早的(最新的一系列节目),最后是最新的(最新的一系列节目)。

我现在正在获取(通过自定义字段元值获取显示日期):

2012年3月11日、2012年3月7日、2012年3月4日、2012年3月2日、2012年2月30日等。

我需要:2012年2月30日,2012年3月1日,2012年3月4日,2012年3月7日,2012年3月11日,

我试着像这样使用php的array\\u reverse(添加到上述代码中):

$reversed_shows = array_reverse( $home_shows->posts );
这给了我非常奇怪的结果(显示帖子的完全不同部分,数组顺序被关闭)。

有什么想法吗?

3 个回复
SO网友:Squadrons

我知道我做错了什么。一个简单的初学者错误。

Array\\u reverse工作正常,但我没有将反向数组重新分配回$home\\u shows WP\\u查询,因此没有看到任何更改。

这是答案,还有我修改过的代码。

<?php
                    $args = array(
                        \'post_type\' => \'show\',
                        \'posts_per_page\' => 5,
                        \'order\' => \'DESC\',
                    );
                    $home_shows = new WP_Query($args);
                    //reverse the order of the posts, latest last
                    $array_rev = array_reverse($home_shows->posts);
                    //reassign the reversed posts array to the $home_shows object
                    $home_shows->posts = $array_rev;
                ?>
                <?php $captions = array(); ?>
                <?php if ( $home_shows->have_posts() ) : ?>         
                    <?php while ( $home_shows->have_posts() ) : $home_shows->the_post(); ?>
谢谢你的回复,很高兴我找到了这个答案。

SO网友:Rutwick Gangurde

删除所有自定义字段混乱并添加\'order\' => \'ASC\' 到args数组!你完了!

SO网友:Rajeev Vyas

    <?php
    $args = array(
        \'post_type\' => \'show\',
        \'posts_per_page\' => 5,
        \'order\' => \'desc\'
        );
    $home_shows = new WP_Query($args);
 //   var_dump($home_shows);

echo "<pre>";
print_r($home_shows->posts);
echo "</pre>";



$array_rev = array_reverse($home_shows->posts);
echo "<pre>";
print_r($array_rev);
echo "</pre>";
  ?>
我在上面尝试了我的自定义帖子类型。。。

结果发布ID:240239238237反向:237238239240

你那边一定还有别的问题。。。。。。

结束