WP_Query - multiple custom post types and sort by custom meta

martin_682 picture martin_682 · Sep 5, 2013 · Viewed 22.5k times · Source

I'd like get results from two custom post types and sort them by custom meta (date of start events).

This code:

$warsztaty_q = new WP_Query(array(
    'post_type' => array('kalendarium', 'warsztaty'),
    'order_by' => 'meta_value',
    'meta_key' => 'data_start',
    'order' => 'ASC'
));

Would be ok but first sorted is 'kalendarium' and then 'warsztaty' so in query results first sorted are posts from 'kalendarium' and next from 'warsztaty' not together.

I found this solution: https://wordpress.stackexchange.com/questions/71576/combining-queries-with-different-arguments-per-post-type

But I can't get custom meta :(

Anyone can help me? :)

Answer

Jothi Kannan picture Jothi Kannan · Sep 5, 2013

use orderby instead of order_by

$warsztaty_q = new WP_Query(array(
    'post_type' => array('kalendarium', 'warsztaty'),
    'orderby' => 'meta_value',
    'meta_key' => 'data_start',
    'order' => 'ASC'
));

refer codex for more details