wordpress程序默认是没有文章浏览器统计的,之前大挖有给大家介绍过,纯代码为wordpress添加文章浏览量统计功能,但是无论是用纯代码还是使用wordpress插件wp-postview,刷新当前页面还是会算做一个浏览数量,那今天大挖给大家介绍下刷新不重复记录的文章浏览量统计代码.
一、在wordpress主题下functions.php里增加以下代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
//add by charleswu function getPostViews($postID) { $count_key = 'post_views_count'; $count = get_post_meta($postID, $count_key, true); if ($count == '') { delete_post_meta($postID, $count_key); add_post_meta($postID, $count_key, '0'); return "0"; } return $count; } function setPostViews($postID) { $count_key = 'post_views_count'; $count = get_post_meta($postID, $count_key, true); if ($count == '') { $count = 0; delete_post_meta($postID, $count_key); add_post_meta($postID, $count_key, '0'); } else { $count++; update_post_meta($postID, $count_key, $count); } } |
二、解决刷新统计数增加,一定要放在文章页面的最前面,貌似php设置cookie之前不能有输出,蛋疼。我的是single.php页面
1 2 3 4 5 6 7 8 9 10 11 |
<?php $post_id=get_the_ID(); if(isset($_COOKIE['views'.$post_id.COOKIEHASH]) && $_COOKIE['views'.$post_id.COOKIEHASH] == '1') { } else{ setPostViews($post_id); setcookie('views'.$post_id.COOKIEHASH,'1',time() + 3600,COOKIEPATH,COOKIE_DOMAIN);//设置时间间隔 } ?> |
其实第一段代码和网上能找到的普通wordpress文章浏览量添加代码是一样的,重点是第二段的需要在文章页面single里面添加的这段代码起着决定性的作用。大家可以使用看看,有更多的方式可以和大挖沟通。