WordPress在后台编辑日志时编辑框左下角有一个字数统计,不过只显示在后台,能不能在前台也加上文章字数统计功能呢?研究了一下程序源文件,发现中文版WP后台的字数统计功能,是通过wp-content\languages目录的zh_CN-word-count.js实现的,就是不知道如何调用。网上搜了一下,找到两篇老外给出的代码:
代码一、把下面代码加到主题的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); ?>
代码二、还是将下面代码加到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博客评论可见实现方法
本站文章大部分为原创,用于个人学习记录,可能对您有所帮助,仅供参考!

我的微信
微信号已复制
版权声明
本站原创文章转载请注明文章出处及链接,谢谢合作!





广西玉林市玉州区 151F
万恶的回复!
湖南省益阳市 152F
看看!!
湖北省黄冈市 153F
支持一下呗~
湖北省咸宁市 154F
来学习来了 鸟哥
江苏省南京市 155F
谢谢分享!
广东省广州市 156F
支持一下
浙江省金华市 157F
看来是要学习了点JQUERY 了。
广东省广州市 158F
肯定要支持 啊
上海市长宁区 159F
嗯 这个蛮有用的。
江西省吉安市 160F
来学习下
福建省龙岩市 161F
一直在学习一直未留言
广东省广州市 162F
学习了~
四川省雅安市 163F
看看先9757
江苏省苏州市 164F
一定要支持下滴!
广东省深圳市 165F
偶回复过了啊.
上海市 166F
新手来学习一下。
浙江省温州市 167F
鸟哥的杰作,正需要,借鉴一下
湖南省岳阳市 168F
我想加一个统计字数,学习下。
安徽省池州市 169F
还要留言………
台湾省 170F
留言來了
浙江省温州市 171F
居然要留言= =……
广东省深圳市宝安区 172F
试下这个功能
广东省深圳市宝安区 173F
如果不要刷新就可见就更好了
江苏省南京市 174F
先看看再说!
浙江省温州市 175F
学习一下鸟哥的经验,吸收知识的精髓
广东省深圳市 176F
鸟哥,偶来向你学习了!
四川省绵阳市 177F
支持下
河北省保定市 178F
学习了
广西百色市 179F
正需要这个功能。来学习学习
广东省深圳市 180F
过来学习了,看下怎么做的。
河北省邢台市 181F
很好的分享,谢谢了
四川省德阳市 182F
鸟哥,厉害啊!
广东省深圳市 183F
学习学习
江苏省淮安市涟水县 184F
博主厉害了
湖北省武汉市 185F
以下内容需要您 添加留言 并刷新后方可查看!
上海市 186F
现在要添加留言了……
江苏省南京市 187F
看看呀,鸟哥,谢了
广东省东莞市 188F
提示:以下内容需要您 添加留言 并刷新后方可查看! 这个功能怎么做到的???
广东省珠海市 189F
相当不错的主题!倍喜欢!
山东省临沂市苍山县 190F
学习一下
山东省 191F
学习一下啊
江苏省南京市 192F
不知道能不能用?
广东省深圳市宝安区 193F
试了一下,可以用哦,嘿嘿
浙江省温州市 194F
学习了。
来自外部的引用