Что нужно сделать?

Требуется оптимизировать вывод левого (колонка) и правого меню на корпоративном сайте, который содержит ~2700 страниц статей. В текущей реализации используется wp_list_pages(), который генерирует полное дерево (~7 000 строк HTML) - это 74% от общего веса документа.

Технические требования

  • Первичный рендер: выводить только пункты верхнего уровня (корень) и текущую ветку (родители данного пункта). Итоговый объем - 200-500 строк кода вместо 7 000.
  • Ленивый накопительный подгруз: при клике на любой свернутый пункт должны подгружаться (через AJAX) его дочерние страницы того же уровня.
  • Совместимость с WP: решение должно корректно отключать стандартную генерацию дерева (или заменять ее) и использовать существующую иерархию страниц.
  • Производительность: после первого рендера меню не должно генерировать висящих запросов к серверу (кроме явных кликов пользователя).
  • Обратная анимация: разрешается добавить setTimeout или requestAnimationFrame для плавного отображения подгруженных подпунктов.

Дополнительные комментарии

  • Условия: чистый AJAX на JavaScript (jQuery допускается, если она уже используется в теме) без перегрузки layout.
  • Никакие названия брендов, телефоны или имена менеджеров не указывать.
  • В итоге требуется рабочий прототип + функции подгрузки со стороны сервера (PHP).

Формат сдачи

PHP-скрипты/модифицированный файл functions.php для подгрузки веток + встроенный в шаблон JavaScript-код. Проверить, что кешируемость не упала, и главный запрос не тормозит.

Все контактные данные отданного объявления удалены.