Наверняка вы уже замечали, что многие информационные сайты выводят информацию о времени, которое необходимо затратить на прочтение той или иной статьи. Бытует мнение, что в эпоху информационной перегруженности и вечной спешки такая информация положительно влияет на поведенческие факторы посетителей сайта и позволяет задержать их на сайте на более долгий период. Мол, человек видит, что чтение статьи отнимет всего лишь 2-3 минуты его драгоценного времени, успокаивается и спокойно проводит время на страницах вашего ресурса.
Трудно сказать как оно обстоит на самом деле. Однако реализовать строку с информацией о среднем времени прочтения нетрудно, во многих случаях она достаточно аккуратно вписывается на первый экран публикации, так что почему бы и нет?
В этой статье я расскажу как добавить среднее время чтения на любой сайт на WordPress без использования плагинов.
Содержание
Как рассчитывается среднее время чтения
Считается, что средний человек читает текст со скоростью 200-250 знаков в минуту. Конечно же реальная скорость чтение сильно зависит как от индивидуальных особенностей человека, так и от удобства восприятия текста на конкретной странице (шрифт и его размер, межстрочные интервалы, объемы параграфов, использование в текстах картинок или анимаций).
Однако, если мы подсчитаем общее количество слов в тексте и поделим их на 200, то у нас получится приблизительное время чтения статьи.
Подсчет количества слов и русскоязычные сайты
В Рунете легко наткнуться на позаимствованные с западных порталов инструкции, описывающие расчет времени чтения при использовании функции PHP str_word_count, позволяющей подсчитывать количество строк в строке.
Подвох в том, что эта функция некорректно обрабатывает кириллицу и в результате ее использования вы получите существенно заниженное количество слов и некорректный расчет времени чтения.
Среднее время чтения на WordPress без плагинов
Я предлагаю использовать скорректированный код функции для подсчета времени чтения.
Нижеприведенную функцию нужно разместить в файле functions.php используемой темы:
function reading_time() { $content = get_post_field( 'post_content', $post->ID ); $content_clean = strip_tags($content); $word_count = count(preg_split('/\s+/', $content_clean)); $readingtime = ceil($word_count / 200); if ($readingtime == 1) { $timer = " минуту"; } elseif ($readingtime == 2 || $readingtime == 3 || $readingtime == 4) { $timer = " минуты"; } else { $timer = " минут"; } $totalreadingtime = 'Чтение займет ' . $readingtime . $timer; return $totalreadingtime; }
Данная функция получает общее количество слов в содержимом поста, удаляет HTML-теги и подсчитывает общее количество слов. Затем это количество делится на 200, и в зависимости от цифры выводится слово «минута» в нужном падеже.
А для вывода времени чтения нужно добавить вызов данной функции в нужном месте страницы:
<?php echo reading_time();?>
Вывод можно украсить, обернув функцию в контейнер с особым стилем оформления или добавив SVG-иконку перед текстом.
Заключение
Подсчет среднего времени чтения статьи — еще одна простая доработка, которую можно внедрить на сайт без использования сторонних плагинов. Не устану повторять, что разумный минимализм в плане использования готовых сторонних решений — залог хорошей скорости загрузки вашего сайта на WordPress.