之前博客吧分享过免插件实现wordpress文章浏览阅读次数的教程代码,通过该代码函数可以实现统计每篇文章的阅读次数,统计方式是每刷新一次页面浏览次数就会增加一次,但是不少用户希望同一个访客不管刷新页面多少次都只统计一次,那么就需要对代码进行调整,增加设置cookie即可实现。
1、把下面的代码添加至主题的functions.php文件:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | <?php function getPostViews($postID){ $count_key = 'views'; $count = get_post_meta($postID, $count_key, true); if($count=='' || !$count){ return "0"; } return $count; } function setPostViews($postID){ $count_key = 'views'; $count = get_post_meta($postID, $count_key, true); if($count=='' || !$count) { $count = 1; delete_post_meta($postID, $count_key); add_post_meta($postID, $count_key, $count); }else{ $count++; update_post_meta($postID, $count_key, $count); } } ?> |
2、在single.php文件的第一行添加以下代码:
1 2 3 4 5 6 | <?php if(!isset($_COOKIE['views'.$post->ID.COOKIEHASH]) || $_COOKIE['views'.$post->ID.COOKIEHASH] != '1'){ setPostViews($post->ID); setcookie('views'.$post->ID.COOKIEHASH,'1',time() + 99999999,COOKIEPATH,COOKIE_DOMAIN);//设置时间间隔 } ?> |
3、在single.php文件要显示浏览次数的位置添加以下代码:
1 | <?php echo getPostViews(get_the_ID());?> |
提示:以上示例代码使用的字段名称是views
,请根据原来的代码进行修改,如果是第一次添加,直接使用即可。