I’m am displaying the last 5 posts of a custom post type ‘show’.
This gives me the latest post first.
<?php
$args = array(
'post_type' => 'show',
'posts_per_page' => 5,
'order' => 'DESC'
);
$home_shows = new WP_Query($args);
var_dump($home_shows);
?>
What I need is to actually have the earliest (of the array of the latest shows) first, and the latest show (in that array of latest shows) last.
I am now currently getting (the show date via a custom field meta value):
3/11/12, 3/7/12, 3/4/12, 3/2/12, 2/30/12
etc.
I need:
2/30/12,
3/1/12,
3/4/12,
3/7/12,
3/11/12,
I tried using php’s array_reverse like so (added to the above code):
$reversed_shows = array_reverse( $home_shows->posts );
Which gave me really odd results (displayed completely different parts of the post, array order was off).
Any ideas?
I figured out what I was doing wrong. A simple beginners mistake.
Array_reverse was working properly, but I wasn’t then reassigning the reversed array back to the $home_shows WP_Query, hence not seeing any change.
Here is the answer, and my revised code.
Thanks for the replies, glad I figured this one out.
Remove all the custom field mess and add an
'order' => 'ASC'
to the args array! And you’re done!I tried above for my custom post type…
results post ids : 240,239,238,237
for reverse : 237,238,239,240
There must be something else in proble at your end……