wordpresss主题功能集成(十六):无插件实现浏览次数统计
关于给wordpress添加浏览次数统计,网上教程到处是,到底原创是谁,早已不知道了,不过这一个系列的教程,我还是要加上这一篇。原理很简单,通过给文章添加一个自定义字段来保存浏览次数数据,我们需要两个函数-设置浏览次数、获取浏览次数。在主题的functions.php中添加两个函数的代码:
- //获取浏览数-参数文章ID
- function getPostViews($postID){
- //字段名称
- $count_key = 'post_views_count';
- //获取字段值即浏览次数
- $count = get_post_meta($postID, $count_key, true);
- //如果为空设置为0
- if($count==''){
- delete_post_meta($postID, $count_key);
- add_post_meta($postID, $count_key, '0');
- return "0";
- }
- return $count;
- }
- //设置浏览数-参数文章ID
- function setPostViews($postID) {
- //字段名称
- $count_key = 'post_views_count';
- //先获取获取字段值即浏览次数
- $count = get_post_meta($postID, $count_key, true);
- //如果为空就设为0
- if($count==''){
- $count = 0;
- delete_post_meta($postID, $count_key);
- add_post_meta($postID, $count_key, '0');
- }else{
- //如果不为空,加1,更新数据
- $count++;
- update_post_meta($postID, $count_key, $count);
- }
- }
。
第二步:
打开主题的single.php文件,在the_post()函数的后面添加设置浏览次数函数,代码效果如下:
- <?php if(have_posts()): while(have_posts()):the_post(); setPostViews(get_the_ID()); ?>
这样在每次请求这篇文章的时候,都执行设置浏览次数的函数,get_the_ID()函数用来获取文章ID,你也可以使用$post->ID来代替。
获取浏览次数
只需要在你需要显示浏览次数的地方添加代码:
- <?php echo getPostViews(get_the_ID()); ?>次点击
只要有了浏览次数,即给文章添加了一个自定义字段,在后台编辑文章的下面,如果显示了自定义栏目,即可看到:
不过这样添加有一个不科学的地方,即没刷新一次浏览次数都加1,这样浏览次数可能会有点虚高,而且还可以很方便的修改,所以这个浏览次数也不能当真
!转载请注明来自:阿树工作室-wordpress主题定制,制作教程(wordpress主题定制-阿树工作室)
我去,我用这玩意儿直接整个网站打不开报错
1. 检查是不是自己代码添加错误。
2. 检查主题是否已经存在这个函数导致冲突。
3. 报错代码百度一下。
请教:分类目录页要实现浏览次数,怎么弄呢?
文章的浏览次数用自定义字段实现,,,分类也可以用分类的自定义字段实现。
与文章自定义字段相关的函数是get_post_meta、add_post_meta、delete_post_meta、update_post_meta。
对应的分类自定义字段也有相关函数 get_term_meta、add_term_meta、delete_term_meta、update_term_meta。
你好,首先谢谢这段代码和楼上的问题,帮大忙了。
刷新页面views的次数就会加1的问题,我发现如果把setPostViews(get_the_ID());放在array之前,刷新页面的时候views次数就不会加1,不知道放在这个位置科学不科学;还有就是你给楼上提供的方法,第一种我不知道为什么没有用,第二种是生效的。。。
按照点击次数排列
以本文为例,本文中文章保存浏览次数的字段名称为post_views_count。按浏览树获取文章范例(请替换代码中引号):
多谢
怎么 调用统计排行榜啊
树哥,你好,我看了你的浏览量统计是不会虚高的,刷新也不会+1,请问你是怎么实现的呢,另外后台发邮件功能好像也不行哦,按照你的教程设置的
参考:wordpress进阶教程(三十六):文章浏览量统计-重复刷新不增加
貌似有错误哎,点击一次,浏览次数增加两次…我把 $count++改成 ++$count了,用着还行。
囧。。。不会真的有错误吧。。。我一直用着没问题啊。。。。$coun++和++$count在一个单独的语句里貌似没啥区别吧
第一次见这么干净的博客 请问博主 你用提代码高亮是什么插件 还有就是 有没有方法让浏览量不虚高 同一个读者刷新也算一次 而且不计算管理员…
代码高亮显示在下一篇教程中,浏览量虚高也不是什么坏事,要解决这个问题还有待研究。。。