首先在footer.php中添加ajax的代码,注意需要将前台显示访问量的标签ID或class名称改成自己的。
<script type= "text/javascript" > function GetCookie(sName) { var arr = document.cookie.match(new RegExp("(^| )"+sName+"=([^;]*)(;|$)")); if(arr !=null){return unescape(arr[2])}; return null; } var postviews_cook=GetCookie("postviews<?php the_ID();?>"); if ( postviews_cook == null ){ $.ajax({ type:'POST', url: "<?php echo admin_url('admin-ajax.php');?>" , data:"postviews_id=<?php the_ID();?>&action=postviews", cache:false,success: function(postviews_count){ $("#views").text('阅读:' + postviews_count + ' 次');document.cookie="postviews<?php the_ID();?>=" + postviews_count;} }); } else{ $("#views").text('阅读:' + postviews_cook + ' 次'); }; </script>
然后直接在自己主题的functions.php中添加下面的代码:
/* * 缓存时更新浏览量-无缓存 * //www.caochen.net/208.html */ function postviews_cache(){ if( empty( $_POST['postviews_id'] ) ) return; $post_ID = $_POST['postviews_id']; if( $post_ID > 0 ) { $post_views = (int)get_post_meta($post_ID, 'views', true); update_post_meta($post_ID, 'views', ( $post_views + 1 )); echo ( $post_views + 1 ); exit(); } }
如果想使用有缓存的版本,想要开启网站缓存,可以选择安装缓存插件,或者直接在网站根目录的wp-config.php中,加入下面这行代码:
define('WP_CACHE', true);
对于本文的解决方案有什么意见和建议,希望能够在下方评论栏中提出来。
最新评论
这篇文章写得深入浅出,让我这个小白也看懂了!
谢谢分享
域名CDN加速类型选择的什么类型?
好像很不错的材料
这招也不好使咋办啊
刚好公司要做培训,需要参考一下如何写,谢谢分享
可以可以
哪里下载呢