Стандартный функционал WP не позволяет сортировать по дате, если оно в произвольном поле. Лично я поступил так:
$events = get_posts($query); // получаем посты через запрос.
foreach ($events as $post ) {
setup_postdata($post); // нужен, чтобы работали всякие the_title и тп.
$event_start = get_post_meta(get_the_ID(), 'mer_nastr_data', true); // получаем дату
$k = date("U", strtotime($event_start)); // переводим дату в формат компа
$events_future_kk[] = $k; // в этом массиве храним id с датами в формате компа
$events_future[$k][] = $post; //массив с будущими событиями
}
sort($events_future_kk); //сортируем массив
/* теперь как читать посты */
for ($x=0; $x<count($events_future_kk); $x++) {
foreach ($events_future[$events_future_kk[$x]] as $post) {
setup_postdata($post);
/* сюда помещаем стандартный код для чтения the_title(); */
}
}