Время чтения статьи — небольшой, но полезный элемент блога. Он улучшает пользовательский опыт, повышает вовлечённость и косвенно помогает SEO. Посетитель сразу понимает, сколько времени займёт чтение материала, и охотнее остаётся на странице.
В этой инструкции разберём, как самостоятельно добавить расчёт времени чтения в WordPress с помощью functions.php, без плагинов и с возможностью гибкой настройки — по аналогии с тем, как это реализовано в Yoast SEO.
Инструкция
Открываем functions.php вашей активной темы и в самый конец вставляем следующую функцию.
// Функция расчета времени чтения
function get_reading_time( $post_id = null ) {
if ( ! $post_id ) {
$post_id = get_the_ID();
}
$content = get_post_field( 'post_content', $post_id );
// Убираем шорткоды и HTML
$content = strip_shortcodes( $content );
$content = wp_strip_all_tags( $content );
$word_count = preg_match_all('/\p{L}+/u', $content, $matches);
$words_per_minute = 200; // скорость чтения
$minutes = ceil( $word_count / $words_per_minute );
if ( $minutes < 1 ) {
$minutes = 1;
}
return $minutes;
}Теперь можно вывести время чтения в нужном месте темы, например в single.php:
<?php echo get_reading_time(); ?> минКак работает расчёт времени чтения
Алгоритм максимально простой:
- Берём контент записи
- Удаляем HTML и шорткоды
- Считаем количество слов
- Делим на среднюю скорость чтения
- Округляем результат в большую сторону
Например:
- 850 слов / 200 слов в минуту = 4,25 → 5 минут
Польза для сайта
- улучшает UX (пользователь сразу понимает объём);
- увеличивает время на странице;
- снижает показатель отказов;
- выглядит профессионально и привычно (как в крупных блогах).