In my plugin, I use these instructions to obtain a list of posts:
$args = array(
'numberposts' => -1,
'offset' => 0,
'meta_query' => array(
array(
'key' => 'metadata1',
'value' => '80',
'compare' => '<=',
'type' => 'UNSIGNED'
),
array(
'key' => 'metadata2',
'value' => '4.6',
'compare' => '<=',
'type' => 'DECIMAL'
),
),
'post_type' => 'post',
'post_status' => 'publish',
'suppress_filters' => true );
$posts = get_posts($args);
foreach ($posts as $post) {
// some work on $post
}
How can I order these posts by metadata1
ascending or by metadata2
ascending? (Note that metadata1
is an unsigned integer number, and metadata2
is a decimal number.)
2 Answers
Try meta_value_num
'meta_key' => 'metadata1',
'orderby' => 'meta_value_num'
Add these 2 parameters to $args. This does the sorting considering metadata1 as numeric