Как определить скорость с которой будет прочитан текст?

Подскажите, как определять сколько времени у человека займет что бы прочитать текст статьи ? Просят вывести такую фичу для WordPress Это зависимость от количества символов в the_content() ?

введите сюда описание изображения


Ответы (1 шт):

Автор решения: mepihindeveloper

Как вариант можно воспользоваться поиском:

 <?php

// подсчет количество слов в utf строке
function str_word_count_utf8($str) {
    $a = preg_split('/\W+/u', $str, -1, PREG_SPLIT_NO_EMPTY);
    return count($a);
}

/**
 * Возвращает приблизительное время чтения статьи в строку
 *
 * @param  string $content содержимое статьи
 * @return string          приблизительное время чтения
 */
function read_time_estimate($content) {
    // очищаем содержимое от тегов
    // подсчитываем количество слов
    $word_count = str_word_count_utf8(strip_tags($content));
   
    // 200 - средняя скорость чтения слов в минуту
    $words_per_minute = 200;
   
    // время чтения статьи в минутах
    $minutes = floor($word_count / $words_per_minute);
   
    $seconds = floor($word_count % $words_per_minute / ($words_per_minute / 60));

    $str_minutes = ($minutes == 1) ? "мин." : "мин.";
    $str_seconds = ($seconds == 1) ? "сек." : "сек.";

    if ($minutes == 0) {
        return "{$seconds} {$str_seconds}";
    }
    else {
        return "{$minutes} {$str_minutes}, {$seconds} {$str_seconds}";
    }
}

Соответственно, можно дополнить функции темы и интегрировать в вывод поста относительно the_content().

Второй вариант можно использовать материалы из статьи.

→ Ссылка