Спасибо, советы помогли. Получился монстр, пожалуй, но работающий как надо) Правда теперь придется взламывать пагинацию)) но это уже другая история.
По итогу пришлось ввести еще два произвольных поля для даты и времени, в которые будут заносится данные в момент создания или редактирования статей. И уже между тремя полями просходит сортировка и сравнение.
вот что получилось, может кому пригодится:
function postSorting() {
$todays_date = current_time('Ymd');
$args = array(
'post_type' => 'post',
'posts_per_page' => '4',
'paged' => $paged,
'meta_query' => array(
'relation' => 'AND',
'sorting_clause' => array(
'key' => 'sorting',
'type' => 'numeric',
'value' => array(0, 100),
'compare' => 'BETWEEN',
),
'date' => array(
'date_clause' => array(
'key' => 'date',
'compare' => '<=',
'value' => $todays_date,
),
'time_clause' => array(
'key' => 'time',
'compare' => 'EXISTS',
),
)
),
'orderby' => array(
'sorting_clause' => 'ASC',
'date_clause' => 'ASC',
'time_clause' => 'ASC',
),
);
$query = new WP_Query( $args );
//вывод цикла...
// сброс
wp_reset_postdata();
}