Как создать динамическое выпадающее меню на странице архива / срока по терминологии Meta?

У меня есть «гостиничный» cpt, связанный с пользовательской неиерархической таксономией «местоположения». Каждый пост принадлежит нескольким Условиям этой таксономии. Это потому, что каждый Термин – это другой тип местоположения.

Например, отель связан с Термин «innsbruck» (который является городом) и Термин «австрийские альпы» (который является горным хребтом). Иногда сообщение связано с более чем одним термином того же типа, потому что «отель» может принадлежать, например, двум другим городам. Да, это звучит странно, но в реальном мире есть отели, которые фактически принадлежат более чем одному городу в одно и то же время.

Итак, предположим, что мы находимся на странице «innsbruck» Term, в которой перечислены все отели в Инсбруке. На этой странице мне нужно показать раскрывающееся меню со всеми Условиями, связанными с каждой Почтой в списке, классифицированными по типам Условий.

Чтобы классифицировать тип Условий, я добавил Term Meta в каждый Термин, так что «innsbruck» имеет ключевой термин «Тип местоположения» и значение «Meta» «Термин». Таким образом, я могу сделать быстрый запрос для всех условий для любого сообщения, так как я знаю Post ID.

Мой вопрос заключается в том, какой код мне нужен для получения всех Условий, связанных с сообщениями, указанными на странице Term / Archive, классифицированной по значениям Term Meta.

У меня есть часть кода для одного сообщения, но я не совсем понимаю его, поэтому я не знаю, что с ним делать, а тем более, как адаптировать его для Term-страницы со списком сообщений:

$locations = get_the_terms( get_post(), 'locations' ); $locations_grouped = []; foreach( $locations as $location ) { $location_type = get_term_meta( $location->term_id, 'location-type', true ); if ( ! $location_type) { $type = 'other'; } if ( ! array_key_exists( $location_type, $locations_grouped ) ) { $locations_grouped[$location_type] = []; } $locations_grouped[$location_type] = $location; } 

Я пробовал несколько циклов foreach (), но, очевидно, я не совсем понимаю, как работают массивы. Я также сделал некоторые исследования для примеров и PHP Manual, но не повезло найти что-то, что могло бы соответствовать моим потребностям.

Я предполагаю, что на странице Term / Archive мне нужно будет выполнить запрос get_terms после цикла страницы, перейдя по всем перечисленным сообщениям.

Заранее благодарю за любую помощь.

PS – Я знаю, это звучит как вопрос «сделай мой код для меня», но нет. Это больше «помогите мне понять, что мне нужно сделать, и часть кода, которую я добавил».