Плагин Время прочтения статьи для 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 (английский)
  • И другие языки системы