Wordpress 格式化访问量
一直以来就想弄个站点的总访问量,而且不用插件实现的,网上的一大堆,我特意选择了一个比较容易懂的代码进行修改和利用上了,效果还不错,代码如下:
//WordPress 获取站点总浏览量
function wb_site_count_user(){
$addnum = rand(1,1); //每个访客增加的访问数 5 - 10 的随机数
session_start();
$date = date('ymd',time());
if(!isset($_SESSION['wb_'.$date]) && !$_SESSION['wb_'.$date]){
$count = get_option('site_count');
if(!$count || !is_array($count)){
$newcount = array(
'all' => 0,
'date' => $date,
'today' => $addnum
);
update_option( 'site_count', $newcount );
}else{
$newcount = array(
'all' => ($count['all']+$addnum),
'date' => $date,
'today' => ($count['date'] == $date) ? ($count['today']+$addnum) : $addnum
);
update_option( 'site_count', $newcount );
}
$_SESSION['wb_'.$date] = $newcount['today'];
}
return;
}
add_action('init', 'wb_site_count_user');
//输出访问统计
function web2go_view(){
session_start();
$sitecount = get_option('site_count');
$date = date('ymd',time());
echo number_format_short(absint($sitecount['all']));
}
显示功能正常后,如果访问量巨大,我们必须按照简写再次进行格式化,初衷我只选用了 php 的 number format 函数进行初步格式化,其用意只是加上逗号区分千位,容易看而已。而最后就是再利用自定义函数,把访问量格式化到 K、M、B、T 这些缩写当中,Github 上有一个源,利用上了,效果不错,详见本站的总访问量效果,代码如下:
//View Number Format
function number_format_short($n, $precision = 1) {
if ($n < 900) {
// 0 - 900
$n_format = number_format($n, $precision);
$suffix = '';
} elseif ($n < 900000) {
// 0.9k-850k
$n_format = number_format($n * 0.001, $precision);
$suffix = 'K';
} elseif ($n < 900000000) {
// 0.9m-850m
$n_format = number_format($n * 0.000001, $precision);
$suffix = 'M';
} elseif ($n < 900000000000) {
// 0.9b-850b
$n_format = number_format($n * 0.000000001, $precision);
$suffix = 'B';
} else {
// 0.9t+
$n_format = number_format($n * 0.000000000001, $precision);
$suffix = 'T';
}
if ($precision > 0) {
$dotzero = '.' . str_repeat('0', $precision);
$n_format = str_replace($dotzero, '', $n_format);
}
return $n_format . $suffix;
}
直接输出:
<?php echo web2go_view(); ?>
Last Updated On Feb 14, 2023 At 07:55:58 PM