mihdan
9/26/2018 - 8:00 PM

wp-estimated-reading-time.php

Простой сниппет для вывода времени чтения переданного текста в WordPress

<?php
/**
 * Расчитать время на прочтение текста
 *
 * @param $str
 *
 * @return float|int
 */
function mihdan_estimated_reading_time( $str ) {
	$words_per_minute = 100;
	$num_words = mihdan_word_count( $str );
	$minutes = ceil( $num_words / $words_per_minute );
	$seconds = ceil( $num_words % $words_per_minute / ( $words_per_minute / 60 ) );
	return sprintf( '%s мин. %s сек.', $minutes, $seconds );
}

/**
 * Подсчитывает количество слов в тексте
 *
 * @param $str
 *
 * @return mixed
 */
function mihdan_word_count( $str ) {
	return str_word_count( wp_strip_tags( strip_shortcodes( $str ) ) );
}

/**
 * Триггерим хук
 */
add_action( 'mihdan_reading_time', 'mihdan_estimated_reading_time' );

/**
 * Для отображения сниппета на странице
 * используйте следующую конструкцию,
 * где $content - сам текст.
 */
<?php echo do_action( 'mihdan_reading_time', $content ); ?>