Задача
На сайте книжных переводов WFBooks.ru навигация по главам («Читать по главам») требовала ручного добавления ссылок в каждую книгу либо работала через фоновый JavaScript-поллинг, который бесконечно опрашивал сервер на существование URL-адресов. Это создавало паразитную нагрузку на хостинг и отнимало много времени у редакторов при публикации.

Ключевые требования заказчика:
- Полностью отказаться от JS-проверок и перевести формирование оглавления на серверную генерацию.
- Организовать гибкую привязку глав к родительской книге (с учетом прологов, нумерованных глав и эпилогов).
- Создать отдельную таксономию авторов для сквозной навигации «все книги автора».
- Реализовать динамический блок «Скачать книгу» (EPUB, FB2, PDF, DOCX, RTF, TXT), который отображается только при наличии файлов и завершенном статусе перевода.
- Сохранить текущие типы записей (post) и структуру постоянных ссылок без потери позиций в SEO и сбоев в хлебных крошках Yoast SEO.
Решение
1. Архитектура данных на ACF:
- Реализована двусторонняя связь через ACF Relationship (book_parent), привязывающая посты-главы к основному посту книги.
- Внедрены поля валидации для глав: тип (prologue / chapter / epilogue) и номер главы для автоматической сортировки.
- Для карточки книги добавлены поля статуса (active / complete) и массив полей загрузки файлов всех популярных форматов (EPUB, FB2, PDF и др.).

2. Кастомная таксономия author:
- Зарегистрирована отдельная некатегорийная таксономия для авторов с чистым rewrite-правилом /author/%term%/, исключающая путаницу со стандартными жанровыми рубриками блога.
3. Серверный рендеринг (WP_Query):
- Полностью вырезан тяжелый JS-поллинг.
- Разработан оптимизированный серверный запрос, который собирает опубликованные главы книги и мгновенно выстраивает их в строгом хронологическом порядке: Пролог → Главы (1..N) → Эпилог.
4. Умный блок скачивания:
- Настроен условный рендеринг: секция со скачиванием форматов автоматически появляется только тогда, когда статус книги переведен в «Завершен» и загружен хотя бы один файл.

5. Сохранение SEO-структуры:
- Сохранен базовый тип записей post — адреса страниц и категорийная структура не изменились, 301 редиректы не потребовались, а хлебные крошки Yoast SEO продолжили работать корректно.
Результат
- Снята паразитная нагрузка на сервер: отказ от регулярных фоновых JS-запросов снизил потребление ресурсов хостинга.
- Ускорена публикация: редактору теперь достаточно указать номер главы и выбрать книгу из выпадающего списка — кнопки оглавления на странице книги появляются мгновенно.
- Повышено удобство для читателей: страницы книг отдают готовый HTML со списком глав без задержек отрисовки, а скачивание доступно в один клик только для готовых переводов.
- Проект сдан без просадок SEO-трафика и с чистой архитектурой на будущее.
