function pre_get_posts_filter($query) {
if( !$query->is_main_query() ) { return; }
// тут можно проверить $_POST на нужные данные
// тут уже как вы сделаете функцию, которая будет вам строить все условия
$meta_query = build_custom_meta_query( ... );
// и обновить все фильтры в конце
$query->set('meta_query', $meta_query);
}
add_action('pre_get_posts', 'pre_get_posts_filter');