学习 工具

给WordPress文章页面加上字数统计和阅读时间

2020年1月17日

每天研究一些小知识,给大家分享Wordpress有趣的东西。

今天在浏览网页的时候发现好多网站的文章页面显示一个小东西,虽然没什么用,但是很温馨的感觉。

比如这篇文章,显示有多少个字,阅读完这篇文章需要多少时间,虽然有的时间不准,但也是能给用户做到一个提醒的功能。

今天就研究了一下,把本博客也给加上,让大家看看。

其实也挺简单,不用插件,只需要几段代码就可以了。

大家可以看下效果:

在文章标题的下面显示:文章的发布时间,作者,本文的浏览次数,共多少个字,阅读的时间。

我们第一步,复制以下代码到博客主题的functions.php中:

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

这是文章的字数统计代码

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

这是阅读时间的统计代码

我们把这两段代码都添加到functions.php中之后,就可以编辑主题的文章页面了,你想让这两段提醒显示在什么位置就把代码复制到哪个位置即可。

字数显示代码:

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

阅读时间提醒代码:

<?php zm_reading_time(); ?>

当你在更新主题时,一定要记者备份主题的functions.php文件,更新完主题之后在把以下的代码复制到新的functions.php当中,还可以继续使用。