Home >CMS Tutorial >WordPress >Add article word count and reading time to WordPress theme

Add article word count and reading time to WordPress theme

藏色散人
藏色散人forward
2019-10-21 11:32:512349browse

Display the article word count and reading time. What is the use of this function? I don’t know, but some users asked if we can add one if others have it. Let’s add it. The following column WordPress Tutorial will introduce to you how to add article word count and reading time to WordPress themes.

Add article word count and reading time to WordPress theme

Add article word count and reading time for WordPress themeAdd article word count and reading time for WordPress theme

The specific code is also shared here:

Article word count

// 字数统计
function zm_count_words ($text) {
global $post;
if ( '' == $text ) {
$text = $post->post_content;
if (mb_strlen($output, &#39;UTF-8&#39;) < mb_strlen($text, &#39;UTF-8&#39;)) $output .= &#39;<span class="word-count">共&#39; . mb_strlen(preg_replace(&#39;/\s/&#39;,&#39;&#39;,html_entity_decode(strip_tags($post->post_content))),&#39;UTF-8&#39;) .&#39;字</span>&#39;;
return $output;
}
}

The code is added to the current theme function template functions.php.

Article reading time

// 阅读时间
function zm_get_reading_time($content) {
$zm_format = &#39;<span class="reading-time">阅读时间%min%分%sec%秒</span>&#39;;
$zm_chars_per_minute = 300; // 估算1分种阅读字数
 
$zm_format = str_replace(&#39;%num%&#39;, $zm_chars_per_minute, $zm_format);
$words = mb_strlen(preg_replace(&#39;/\s/&#39;,&#39;&#39;,html_entity_decode(strip_tags($content))),&#39;UTF-8&#39;);
 
$minutes = floor($words / $zm_chars_per_minute);
$seconds = floor($words % $zm_chars_per_minute / ($zm_chars_per_minute / 60));
return str_replace(&#39;%sec%&#39;, $seconds, str_replace(&#39;%min%&#39;, $minutes, $zm_format));
}
 
function zm_reading_time() {
echo zm_get_reading_time(get_the_content());
}

The code is added to the current theme function template functions.php.

Call article word count and reading time code

Display article word count code:

<?php echo zm_count_words($text); ?>

Display reading time code:

<?php zm_reading_time(); ?>

Add the above calling code to the current The appropriate position of the theme body template is enough.

However, the word count and reading time are not very accurate, especially the reading time, which is even more nonsense. The default is based on the speaking speed of the CCTV announcer.

After writing this article, I found that there is a simpler code on the Internet. The difference is that the above code is accurate to seconds, and the following code only estimates to minutes.

function count_words_read_time () {
global $post;
$text_num = mb_strlen(preg_replace(&#39;/\s/&#39;,&#39;&#39;,html_entity_decode(strip_tags($post->post_content))),&#39;UTF-8&#39;);
$read_time = ceil($text_num/300); // 修改数字300调整时间
$output .= &#39;本文共计&#39; . $text_num . &#39;个字,预计阅读时长&#39; . $read_time  . &#39;分钟。&#39;;
return $output;
}

Calling code:

<?php echo count_words_read_time(); ?>

The above is the detailed content of Add article word count and reading time to WordPress theme. For more information, please follow other related articles on the PHP Chinese website!

Statement:
This article is reproduced at:zmingcx.com. If there is any infringement, please contact admin@php.cn delete