Плагин Время прочтения статьи для 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 секунд), отображается время в секундах. Иначе — в минутах с правильным склонением.
🔄 Пересчёт существующих постов
Если вы установили плагин на существующий блог с постами:
- Откройте настройки плагина
- Прокрутите вниз до раздела «Recalculate reading time»
- Нажмите кнопку «Пересчитать все посты»
- Дождитесь завершения (появится сообщение с количеством обновлённых постов)
Альтернативный способ: просто откройте и сохраните каждый пост вручную — время будет пересчитано автоматически.
🌍 Локализация
Плагин поддерживает множественное число слов на разных языках через систему локализации Webasyst. Формат вывода:
- 1 минута, 2 минуты, 5 минут (русский)
- 1 minute, 2 minutes, 5 minutes (английский)
- И другие языки системы





