Не совсем понятно в какой именно момент вы хотите фильтровать записи
Если у вас дата заполнена в полях ACF и вы хотите сделать запрос из базы исходя из этого параметра, то для этого используется параметр 
meta_key запроса 
wp_query()
$posts = get_posts( array(
    'post_type' => 'event',
    'meta_key'  => 'date',
    'orderby'   => 'meta_value_num',
    'order'     => 'ASC',
));
Если вы находитесь в шаблоне 
archive.php или подобном, то вам надо провести фильтрацию глобального запроса на хуке 
pre_get_posts
add_action( 'pre_get_posts', 'pre_get_events', 1 );
function pre_get_events( $query ) {
	if ( $query->is_post_type_archive( 'event' ) ) {
		$query->set( 'meta_key', 'date' );
		$query->set( 'orderby', 'meta_value_num' );
	}
}
Если же вам нужно сделать кастомную сортировку по двум и более параметрам, например, с помощью фронтенд формы, то без гет-параметров не обойтись. Возможны любые варианты:
	- мойсайт.ру/2022/05/10/?tag=arbuz
 
- мойсайт.ру/tag/arbuz/?date=2022-05-10
 
С помощью 
get_query_var() проверяете наличие переменной и меняете основной запрос
add_action( 'pre_get_posts', 'custom_pre_get_posts', 1 );
function custom_pre_get_posts( $query ) {
	if ( $tag = get_query_var( 'tag', false ) ) {
		$query->set( 'tag', $tag );
	}
}
Если вы переживаете, что дублируются заголовки, то можете тем же самым способом с помощью 
get_query_var() проверять наличие переменной и подменять заголовок с описанием