query order by date on custom type: wrong order

I know there are very similar questions ans answers out there already, but I simply cannot get my query to get into the right order.

I have a custom post type (“bb_articles”) with custom fields, among them:
– “bb_source”: radio button with stored values 1, 2, 3…
– “bb_date”: date field

Read More

I want to show posts of specific “bb_source” (e.g. 1) ordered by “bb_date”.

What I get, however, is a order by publication date (it seems), what is NOT what I want.

My code is:

$query = array (
   'post_type' => 'bb_articles',
   'meta-key' => 'bb_date',
   'orderby' => 'meta_value_num',
   'order' => 'DESC',
   'meta_query' => array(
      array('key' => 'bb_source',
        'value' => 1,
        'compare' => '='
      )
   )
);

$my_query = new WP_Query($query);

I also tried it that way as described by Hameedullah Khan here

$query = array (
   'post_type' => 'bb_articles',
   'meta-key' => 'bb_date',
   'orderby' => 'meta_value_num',
   'order' => 'DESC',
   'meta_query' => array(
         array (
            'key' => 'bb_date'
            ),
         array('key' => 'bb_source',
            'value' => 1,
            'compare' => '=='
            )
         )
);

“bb_date” is stored in Unix date format, i.e. 4 Nov 2012 is: 1351987200
thus, ordering by meta_value_num should imo produce the right order.

Obviously it does not, so where could the error be?

Any help is greatly appreciated.
Thanks

Edit: cleaned code snipped and added second code snippet

Related posts

Leave a Reply

1 comment

  1. It is meta_key not meta-key meaning you aren’t meeting all of the conditions needed for this to work.

    ‘meta_value_num’ – Order by numeric meta value (available with
    Version 2.8). Also note that a ‘meta_key=keyname’ must also be present
    in the query. This value allows for numerical sorting as noted above
    in ‘meta_value’.