I am trying to order blog posts by ‘city’ first and then order by ‘street_name’ within each city. I can’t seem to get the ‘street_name’ to display in alphabetical order. I am using WP_Query:

                <?php
                $args = array(
                    'post_type'=> 'property',
                    'meta_query' => array(
                                array(
                                    'relation' => 'AND' ,
                                    array(
                                        'meta_key' => 'city',
                                        'orderby' => 'meta_value',
                                        'order' => 'ASC'
                                    ),
                                    array(
                                        'meta_key' => 'street_name',
                                        'orderby' => 'meta_value',
                                        'order' => 'ASC'
                                    ),
                                )

),
Any ideas?

4 s
4

meta_query and orderby are seperate parameters, you just put them together in an array. You will have to do one then the other.

e.g.

<?php
$args = array(
    'post_type'     => 'property',
    'meta_query'    => array(
        array(
            'relation' => 'AND',
            'city_clause' => array(
                'key'       => 'city',
                'compare'   => 'EXISTS',
            ),
            'street_clause' => array(
                'key'       => 'street_name',
                'compare'   => 'EXISTS',
            ),
        )
    )
    'orderby' => array(
        'city_clause'       => 'desc',
        'street_clause'     => 'desc',
    )
)
?>

WP_Query

Tags:

Leave a Reply

Your email address will not be published. Required fields are marked *