在WordPress前台添加文章字数统计功能的实现
在WordPress后台编辑日志时,编辑框左下角的字数统计功能为用户提供了即时的字数反馈,但这一功能默认仅在后台显示。许多用户可能会好奇,是否有可能在前台也实现文章字数统计功能呢?经过一番研究,我发现中文版WordPress后台的字数统计功能是通过`wp-content\languages`目录下的`zh_CN-word-count.js`文件实现的。但如何将其调用至前台,成了一个挑战。在网上搜索后,我找到了两种由国外开发者提供的代码解决方案:
1. 将以下代码添加到主题的`functions.php`文件中:
function count_words($str){ $words = 0; $str = eregi_replace(" +", " ", $str); $array = explode(" ", $str); for($i=0;$i < count($array);$i++) { if (eregi("[0-9A-Za-zÀ-ÖØ-öø-ÿ]", $array[$i])) $words++; } return $words; }
在`single.php`文件中,在你希望显示字数统计的位置添加以下代码:
Word count: <?php echo count_words($post->post_content); ?>
2. 同样,将以下代码添加到`functions.php`文件中。与方法一不同,这种方法还额外提供了一个估算的阅读时间功能:
// Custom functions // START : Show word count function show_post_word_count(){ ob_start(); the_content(); $content = ob_get_clean(); return sizeof(explode(" ", $content)); } // END : Show word count // START : Estimated reading time if (!function_exists('est_read_time')): function est_read_time( $return = false) { $wordcount = round(str_word_count(get_the_content()), -2); $minutes_fast = ceil($wordcount / 250); $minutes_slow = ceil($wordcount / 150); if ($wordcount <= 150) { $output = __("< 1 minute"); } else { $output = sprintf(__("%s - %s minutes"), $minutes_fast, $minutes_slow); } echo $output; } endif; if (!function_exists('est_the_content')): function est_the_content( $orig ) { // Prepend the reading time to the post content return est_read_time(true) . "\n\n" . $orig; } endif; // END : Estimated reading time
在`single.php`文件中,在你希望显示字数统计和阅读时间的位置添加以下代码:
The following <?php echo show_post_word_count(); ?> words should take about <?php echo est_read_time(); ?> to read.
遗憾的是,上述两种方法对于汉字的统计并不有效,它们更适合纯英文站点。由于网上没有找到适用于中文博客的字数统计解决方案,我决定自己动手解决这个问题。
WordPress博客文章字数统计代码实现
添加方法与上述两种方法相同,首先将以下代码添加到你的主题`functions.php`文件中。(注:对于HotNews主题,建议在“//全部结束”注释前添加)
//字数统计 function count_words ($text) { global $post; if ( '' == $text ) { $text = $post->post_content; if (mb_strlen($output, 'UTF-8') < mb_strlen($text, 'UTF-8')) $output .= '本文共' . mb_strlen(preg_replace('/\s/','',html_entity_decode(strip_tags($post->post_content))),'UTF-8') . '个字'; return $output; } }
再把调用统计代码加到自己认为适合的位置。
<?php echo count_words ($text); ?>
通过这些步骤,你将能够在WordPress中文博客的前台页面上实现文章字数统计功能,为读者提供更多信息,增强阅读体验。
@版权声明:
本网站所展示的图片均来源于互联网,我们致力于尊重原创作者的版权。若图片涉及版权问题,或图片所有者不希望图片被展示,请与我们联系,我们将在第一时间进行处理,包括但不限于删除图片。我们对图片的版权问题持开放态度,并愿意与版权所有者进行沟通协商。感谢您的理解与支持。