实现在WordPress网站中添加文章字数统计

在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中文博客的前台页面上实现文章字数统计功能,为读者提供更多信息,增强阅读体验。

@版权声明与免责声明:

本网站部分图片素材来源于网络,版权归原作者所有。我们尊重原创作者的版权,如有侵权,请及时与我们联系,我们将在第一时间删除相关内容。

对于本网站上标注为原创的图片和内容,未经 [站长营地 CmsZc.com] 的事先书面同意,您不得以任何形式或方式复制、修改、传播、展示或以其他方式使用。如果您希望使用本网站上的任何原创图片或内容,请通过以下联系方式与我们联系以获取授权:

联系我们

给TA打赏
共{{data.count}}人
人已打赏
0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索