每进入一次文章详情页面,就会通过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();?>