Автоматизация навигации глав и скачиваний для сайта переводов книг «WFBooks»

КЕЙС: wfbooks-t

Задача

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

Ключевые требования заказчика:

  1. Полностью отказаться от JS-проверок и перевести формирование оглавления на серверную генерацию.
  2. Организовать гибкую привязку глав к родительской книге (с учетом прологов, нумерованных глав и эпилогов).
  3. Создать отдельную таксономию авторов для сквозной навигации «все книги автора».
  4. Реализовать динамический блок «Скачать книгу» (EPUB, FB2, PDF, DOCX, RTF, TXT), который отображается только при наличии файлов и завершенном статусе перевода.
  5. Сохранить текущие типы записей (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-трафика и с чистой архитектурой на будущее.

Еще кейсы