Навигация по статье

Время чтения статьи — небольшой, но полезный элемент блога. Он улучшает пользовательский опыт, повышает вовлечённость и косвенно помогает 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(); ?> мин

Как работает расчёт времени чтения

Алгоритм максимально простой:

  1. Берём контент записи
  2. Удаляем HTML и шорткоды
  3. Считаем количество слов
  4. Делим на среднюю скорость чтения
  5. Округляем результат в большую сторону

Например:

  • 850 слов / 200 слов в минуту = 4,25 → 5 минут

Польза для сайта

  • улучшает UX (пользователь сразу понимает объём);
  • увеличивает время на странице;
  • снижает показатель отказов;
  • выглядит профессионально и привычно (как в крупных блогах).