I am wondering what changes I should make in the php code above so that it sorts WP_Post object array order by date.
WordPress/PHP does not sort the objects, that’s not how this works. Additionally, the sort
argument does not take the name of object fields. The two are not connected. The order of the posts is determined by the results of rows from the post table returned by the SQL query.
Instead, sort
is a parameter used to construct an SQL query. If we look at the documentation we can see the valid values, so you are already using the correct order parameters:
$area_query = new \WP_Query( [
's' => $search,
'post_type' => 'abc-xyz',
'post_status' => 'publish',
'orderby' => 'date',
'order' => 'ASC',
] );
The above code is asking the database for posts, srted by date in ascending order ( e.g. 1AD, 2AD, 500AD, 1000AD, 2000AD, etc ). It may be that you wanted the reverse.
Note that if you are storing the data in post meta, this will not work, the date
here is the date the post was published.