I have this code which works fine:
$args = array(
'post_type' => 'brands',
'meta_query' => array(
array(
'key' => 'br_type',
'value' => 'Aviation'
)),
'posts_per_page' => -1,
'meta_key' => 'br_name',
'orderby' => 'meta_value',
'order' => 'ASC',
'fields' => 'ids'
);
However, I need to order first by ascending order by another custom field "br_category"
and then by the name br_name
. I am not sure how to implement this.
I have this code which works fine:
$args = array(
'post_type' => 'brands',
'meta_query' => array(
array(
'key' => 'br_type',
'value' => 'Aviation'
)),
'posts_per_page' => -1,
'meta_key' => 'br_name',
'orderby' => 'meta_value',
'order' => 'ASC',
'fields' => 'ids'
);
However, I need to order first by ascending order by another custom field "br_category"
and then by the name br_name
. I am not sure how to implement this.
- I found my answer here! wordpress.stackexchange/a/126928/15209 – Jacob Raccuia Commented Jul 11, 2020 at 4:35
1 Answer
Reset to default 3 +25I'm not 100% certain what specific order you're asking for, but you just need to assign an associative array to the 'orderby' value. Here's an example:
$args = array(
'post_type' => 'brands',
'meta_query' => array(
array(
'key' => 'br_type',
'value' => 'Aviation'
),
array(
'key' => 'br_category'
),
array(
'key' => 'br_name'
)
),
'posts_per_page' => -1,
'orderby' => [
'br_category' => 'ASC',
'br_name' => 'ASC',
'br_type' => 'ASC'
],
'order' => 'ASC',
'fields' => 'ids'
);