每进入一次文章详情页面,就会通过cookie判断该用户是否在cookie有效期内访问过该文章,如果没有访问过,则浏览次数加一.
实现步骤如下:
1.添加如下代码至主题functions.php文件中,在文件最下面加入即可
function post_views_record()
{//设置 post 文章阅读次数
if (is_singular()) {
global $post;
$post_ID = $post->ID;
if ($post_ID) {
if(!isset($_COOKIE['views'.$post_ID.COOKIEHASH]) || $_COOKIE['views'.$post_ID.COOKIEHASH] != '1'){
$post_views = (int) get_post_meta($post_ID, 'views', true);
if (!update_post_meta($post_ID, 'views', ($post_views + 1))) {
add_post_meta($post_ID, 'views', 1, true);
}
setcookie('views'.$post_ID.COOKIEHASH,'1');
}
}
}
}
function get_post_views($before = '', $after = '')
{//读取 post 文章阅读次数
global $post;
$post_ID = $post->ID;
$views = (int) get_post_meta($post_ID, 'views', true);
if ($views >= 1000) {
$views = round($views / 1000, 2) . 'K';
}
return $before . $views . $after;
}
2,添加如下代码至主题header.php文件中,必须加在该文件最上方,否则setcookie始终返回false,不会生效,原因是setcookie()之前不能有任何HTTP头部输出
post_views_record();
3,添加如下代码至要显示浏览次数的位置,例如文章详情页single.php
<?php echo get_post_views();?>