我们在用一些主题的时候,是自带文章浏览统计量的,但每刷新一次就算作一次浏览,特别是像云测速这样有google adsense的网站,发布文章后,会手动刷新页面来使广告生效,就造成浏览量会变很多,今天云测速给大家介绍一下刷新不再计入浏览量的代码。
在wordpress主题的functions.php里加入以下代码:
//add by cloud-ping.com 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页面
<?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文章浏览量的代码,第二段代码才是起决定性作用的,如果有不懂的地方可以给云测速留言哦~