Если честно, то весьма грубый и сырой use case. Фильтрация на текущую сессию или навсегда? Как происходит сборс фильтров или выход на уровень выше? Как происходит смена фильтров? Вообще, такой концетп называется faceted search / поиск с импользованием фильтров, юзается на всех адекватных интернет-магазинах и в каталогах (в том числе по недвижимости). Это уже давно стандартный паттерн, и не надо ничего придумывать. Плагинов для этого паттерна - масса, как платных, так и бесплатных. В том числе и на Тостере обсуждалось не раз, я сам оставлял ссылки раз 5. Так, из памяти:
https://facetwp.com/
https://searchwp.com/
https://wordpress.org/plugins/search-by-wp-search/...
https://wordpress.org/plugins/webkite/screenshots/
https://wordpress.org/plugins/wp-ultimate-search/
Тут еще
https://wordpress.org/plugins/search.php?type=term...
Но у всех этих решений есть один нюанс. Если фильтрация идет только по таксономиям (рубрики, теги, кастомные таксономии) - тогда без проблем. Если нужно делать фильтры по custom post metadata (метаданным), то все они будут медленные, чем больше база - тем медленнее работа. Дело в том, что метаданные хранятся в таблице без индексов, и любой запрос требует перебора всех строк в таблице. Если сайт большой, используется много метаданных, то есть только одно решение - установка и настройка на сервере Elastic Search и поиск уже через него. Но это для продвинутых.