I'm trying do order a custom post type page by 2 variables: - first is the custom post type meta_key "date" - then, for posts with the same date, it should be ordered by meta_key "number"

I'm willing to set for some kind of ordering on the second level but right now it really seems random:

 <?php $my_query = new WP_Query( array( 
                              'post_type' => 'product', 
                              'meta_query' => array(
                                                  'key' => 'options_type',
                                                  'value' => 'Denim'
                               'orderby'  => 'meta_value',
                               'meta_key' => 'options_date',
                               'posts_per_page' => 50 ,
                               'order'    => 'DESC'

                              )); ?>

Even editing the "wordpress publication date" doesn't affect the "same day" order. So I end up with:

  • 09.03.2012 244 Diesel (wordpress date 3.8.2012)
  • 09.03.2012 246 Levi's (wordpress date 3.9.2012)
  • 09.03.2012 247 Evisu (wordpress date 3.10.2012)

(i'm using european date displayng, so 09.03 means March, 9th)


just to clarify: I've some custom field and i've set a specific options_date field for the custom post type, which is different from the wordpress date.

I would like to order the posts using a multiple order: custom field "options_date" and, inside the same "options_date" by another custom field "options_info".

ordering with

'orderby'  => 'meta_value date',

doesn't seem to work and it's not the target result, I'm looking for a multiple meta_key ordering.

  • Try to add both meta values that you want to orderby into the value and separate them with a space. – kaiser Mar 12 '12 at 16:03
  • with 'meta_key' => 'options_date options_number', I get nothing in return. the site is not broken, but no posts appear. – molokom Mar 12 '12 at 16:15
  • 1
    Please re-read my comment. I said if you want to orderby 2 values, then you'll have to add both to orderby. So 'orderby' => 'date meta_value' would be what I suggested. – kaiser Mar 12 '12 at 16:19
  • Ups, sorry. Almost there... Now inside the same "option_date" the order is correct (wordpress date), but the ASC/DESC seems to control just the second ordering, the first on is always ASC (older option_date post apper first). – molokom Mar 12 '12 at 16:26
  • Update your question with the output from this answers code. – kaiser Mar 12 '12 at 17:01

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.