Плагин Время прочтения статьи для Webasyst Блог

Плагин автоматически рассчитывает время чтения для каждой статьи блога на основе количества слов, изображений, таблиц, кода и других элементов контента. Результат сохраняется в базе данных и может быть отображён в любом месте шаблона темы.

Возможности

  • 🔢 Умный подсчёт слов — учитывает количество слов в тексте статьи
  • 🖼️ Изображения и видео — добавляет время для просмотра медиа-контента
  • 📊 Сложные элементы — учитывает таблицы, блоки кода и списки
  • ⚙️ Гибкая настройка — скорость чтения, множители для разных типов контента
  • 🎨 UI 2.0 — современный интерфейс с переключателями и слайдерами
  • 🔄 Пересчёт — кнопка для пересчёта всех постов одним кликом
  • 📱 Адаптивность — корректно работает с короткими и длинными статьями
  • 🌐 Локализация — поддержка склонения слов на разных языках

⚙️ Настройки

ПараметрОписаниеПо умолчанию
Включить/выключитьГлавный переключатель плагина (UI 2.0: switch)Включено
Скорость чтенияКоличество слов в минуту (150-400, с пресетами)250 слов/мин
Время к изображениюСекунды на просмотр одного изображения10 секунд
Текст заголовкаТекст перед временем чтенияReading time:
Место отображенияАвтоматически через JS или вручную в шаблонеСамостоятельно в шаблоне
CSS селекторыСелекторы для автоматической вставкиarticle>.credentials, [class*=»post-author»], [class*=»post-meta»]
Множитель таблицКоэффициент сложности чтения таблиц2.0
Множитель кодаКоэффициент сложности чтения кода1.5
Множитель списковКоэффициент сложности списков (меньше = быстрее)0.8
Время видеоСекунды на одно видео60 секунд
Порог короткого контентаМин. время в секундах для показа30 секунд
Максимум постов в спискеЛимит обработки постов в списке (0 = безлимит)100
💡 Совет: Если время чтения отображается неправильно, нажмите кнопку «Пересчитать все посты» внизу страницы настроек!

💻 Использование в шаблоне

Для отдельной страницы поста:

{$postduration = $wa->blog->postduration} {if $postduration} <span class="post-duration">Время чтения: {$postduration}</span> {/if}

Для страницы списка постов:

{$postduration_list = wa("blog")->plugin("postduration")->articleList()} {$postduration_list}

Альтернативный метод (простой):

{if $post.postduration} <span class="reading-time">Время чтения: {$post.postduration}</span> {/if}
⚠️ Важно: Для использования этих методов выберите «Самостоятельно в шаблоне» в настройке «Место отображения».

🎯 Функционал UI 2.0

  • Переключатель включения/выключения — современный switch вместо чекбокса с текстом «Включено/Выключено»
  • Слайдер скорости чтения — диапазон 150-400 слов/мин с визуальным отображением значения
  • Кнопки-пресеты — 🐢 Медленная (180), 📖 Средняя (250), ⚡ Быстрая (350)
  • Дублирование кнопки сохранения — кнопка «Сохранить» продублирована сверху страницы

📐 Алгоритм расчёта

Плагин использует следующую формулу для расчёта времени чтения:

Время = (Слова / Скорость) + (Изображения × Время_на_изображение / 60) + (Видео × Время_на_видео / 60) + (Таблицы × Множитель_таблиц × 0.5) + (Код × Множитель_кода × 0.3) + (Списки × Множитель_списков × 0.2)

Если итоговое время меньше порога короткого контента (по умолчанию 30 секунд), отображается время в секундах. Иначе — в минутах с правильным склонением.

🔄 Пересчёт существующих постов

Если вы установили плагин на существующий блог с постами:

  1. Откройте настройки плагина
  2. Прокрутите вниз до раздела «Recalculate reading time»
  3. Нажмите кнопку «Пересчитать все посты»
  4. Дождитесь завершения (появится сообщение с количеством обновлённых постов)

Альтернативный способ: просто откройте и сохраните каждый пост вручную — время будет пересчитано автоматически.

🌍 Локализация

Плагин поддерживает множественное число слов на разных языках через систему локализации Webasyst. Формат вывода:

  • 1 минута, 2 минуты, 5 минут (русский)
  • 1 minute, 2 minutes, 5 minutes (английский)
  • И другие языки системы