Стандартный функционал WP не позволяет сортировать по дате, если оно в произвольном поле. Лично я поступил так:
$events = get_posts($query); // получаем посты через запрос. foreach ($events as $post ) { setup_postdata($post); //нужен, чтобы работали всякие the_titlt и тп. $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); /* сюда помещаем стандартный код для чтения<!—?php the_title();?—>*/ } }