I have an array of post ids which I'm passing to query_posts using 'post__in'.
My question is how can I use the order from my array rather than ordering by 'date' etc?
WordPress Development Stack Exchange is a question and answer site for WordPress developers and administrators. It only takes a minute to sign up.
Sign up to join this communityI have an array of post ids which I'm passing to query_posts using 'post__in'.
My question is how can I use the order from my array rather than ordering by 'date' etc?
You would need to build your own query and pass it to query_posts i.e.
if your array of post ids is:
array (10,21,1) // corresponding to post ids.
then you can query this way:
select * from wp_posts where `ID` in (10, 21, 2)
order by field(ID,10,21,2)
This will give you a result set in the order of your post ids array.
HTH
posts_orderby
filter to alter the orderby and use FIELD(ID, ...). Furthermore, to keep it dynamic, you can use, for a given array $arr, 'FIELD(ID, '.implode(',',$arr).')'
. See the Codex for a good writeup of the posts_orderby filter
Jan 28, 2012 at 15:13