Home > CMS Tutorial > WordPress > body text

Add article word count and reading time to WordPress theme

藏色散人
Release: 2019-10-21 11:32:51
forward
2309 people have browsed it

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;
}
}
Copy after login

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());
}
Copy after login

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); ?>
Copy after login

Display reading time code:

<?php zm_reading_time(); ?>
Copy after login

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;
}
Copy after login

Calling code:

<?php echo count_words_read_time(); ?>
Copy after login

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!

Related labels:
source:zmingcx.com
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template