Что нужно сделать?
Требуется оптимизировать вывод левого (колонка) и правого меню на корпоративном сайте, который содержит ~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-код. Проверить, что кешируемость не упала, и главный запрос не тормозит.
Все контактные данные отданного объявления удалены.