admin管理员组

文章数量:1405516

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.

Share Improve this question edited Dec 10, 2019 at 15:53 Fayaz 9,0172 gold badges33 silver badges51 bronze badges asked Dec 2, 2019 at 17:47 JoaMikaJoaMika 6986 gold badges27 silver badges58 bronze badges 1
  • I found my answer here! wordpress.stackexchange/a/126928/15209 – Jacob Raccuia Commented Jul 11, 2020 at 4:35
Add a comment  | 

1 Answer 1

Reset to default 3 +25

I'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'
);

本文标签: wp queryOrder by two meta keys