В меню должны отображаться только категории, в которых имеются товары в наличии в данный момент. Один из уровней меню — это отдельная от категорий таксономия товаров, то есть, необходимо фильтровать еще и значения отдельной таксономии по значению категории. Чтобы получить такую структуру данных, необходимо сделать очень много сложных запросов в БД магазина. Примерно по одному запросу на каждый пункт меню. Затем на основе получившегося дерева данных сгенерировать разметку меню. Это очень ресурсоемкий процесс, который нецелесообразно делать при загрузке каждой страницы сайта, потому что ожидание загрузки страницы посетителем может быть настолько большим, что превысит максимальное время работы скриптов на бэкенде, которое составляет от 30 секунд до нескольких минут.