Is it possible to order my list of custom posts, after filtering it with meta_query, by the meta data of my choice?
For example, I have a custom post type called webinars. I am trying to list all upcoming webinars, and have them ordered by the custom meta field called webinar_startDate.
Using the following query, I was able to return the webinars succesfully excluding the old webinars. However, they still come out in the order they were published, and not by webinar_startDate.
<?php $my_array = array(
'meta_query' => array(
array(
'key' => 'webinar_startDate',
'value' => date("Y-m-d H:i:s"),
'compare' => '>=',
'type' => 'DATETIME'
)
),
'orderby' => 'meta_value',
'post_type' => 'webinars',
'posts_per_page' => 20,
'order' => 'ASC'
); ?>
I suspect that due to the change from 3.0 to 3.1, the use of orderby => meta_value is probably different, but I can’t find an answer within the WordPress documentation to explain this.
Can anyone help? Thanks in advance.
the new
meta_query
array selects which posts the query returns. So yes, you are indicating the ‘key’ within thatmeta_query
, but you can still use the old method ofin addition to the meta_query, as these lines indicate how to sort the resulting query. So yes, you might indicate the same meta_key twice.
I’m using the following code for my custom posts called
events
, to get all posts in a Loop.I think you are using your code approximatly the same way. I think you are missing the
meta_key
with the name of the meta-field to sort. Perhaps it helps if you addto the outer array?