Раскрытые фильтры в таксономии не предоставляют возможности отслеживать иерархию. Однако дочерние термины помечаются дефисами, что можно использовать для решения задачи — отобразить родительский регион рядом с вложенным городом.
Например, вместо просто «Москва» в выпадающем списке будет отображаться «Москва (Центральный округ)». Добавьте следующий код в кастомный модуль:
function MYMODULE_form_views_exposed_form_alter(&$form, &$form_state, $form_id) {
$parent = '';
$options = $form['tid']['#options'];
foreach ($options as $index => $option) {
if (is_object($option)) {
$label = reset($option->option);
$key = key($option->option);
if (substr($label, 0, 1) != '-') {
$parent = $label;
}
else {
$options[$index]->option[$key] = $options[$index]->option[$key] . " ($parent)";
}
}
}
}
Логика проста: в цикле перебираем все опции фильтра. Если термин не начинается с дефиса — это родитель, запоминаем его. Если начинается с дефиса — это дочерний термин, добавляем к нему имя родителя в скобках.
После реализации модуля не забудьте очистить кэш Drupal, чтобы увидеть результат.