自从陌小雨博客历经文章阅读数数次清零后,陌小雨对这个文章浏览数也不是很在意了,这也就是所谓的破罐子破摔吧,但自从陌小雨前段时间再启用 wp super cache 纯缓存代码后,陌小雨觉得还是有必要把这个浏览数折腾折腾,不然有的老的冷的文章浏览数一直是 1、2、3 啥的不好是吧。
相关文章:
第一步:在 wordpress 根目录下,新建 ajax.php.内容如下
<?php define( 'DOING_AJAX', true ); require_once( 'wp-config.php' ); do_action( 'wp_ajax_nopriv_' . $_REQUEST['action'] ); die( '0' );
第二步:在主题目录下的 functions.php 添下以下代码
//WordPress 文章点击统计 ajax 版,兼容 wp super cache 缓存代码及插件 //整理:陌小雨博客 https://www.dedewp.com add_action( 'wp_ajax_nopriv_v', 'views' ); function views($echo) { $post_id = intval( $_GET['views_id'] ); if( $post_id > 0 ) { $post_views = get_post_custom( $post_id ); $post_views = intval( $post_views['views'][0] ); update_post_meta( $post_id, 'views', ( $post_views + 1 ) ); exit(); } if ($echo == 1) { global $post; $post_ID = $post->ID; $views = (int)get_post_meta($post_ID, 'views', true); echo number_format($views); } }
第三步:引入 jquery 库,xiu 主题已有引入,就不用再添加了。
第四步:在 footer.php 文件 body 之前添加
<?php if( is_single() ){?> <script type='text/javascript'> /* <![CDATA[ */var v = {"u":"\/ajax.php","id":"<?php the_ID(); ?>"};/* ]]> */ jQuery.ajax({type:"GET",url:v.u,data:"views_id="+v.id+"&action=v"}); </script> <?php } ?>
第五步:完毕,接下来在需要显示的计数的主循环内添加以下代码即可
阅读(<?php views(1);?>)
如果小白博主觉得本篇文章太复杂,建议直接使用 wp-postviews 这个插件,简洁且多功能。
WP-PostViews 是一款很受欢迎的文章浏览次数统计插件,记录每篇文章浏览次数、可以根据浏览次数显示历史最热文章、展示范围可以是全部文章和页面,也可以是某些指定目录下的文章和页面。由于陌小雨博客只需要统计文章点击及显示浏览量,所以本篇文章就更适合陌小雨自己了。这个自定义函数会使用跟 wp-postvies 一样的自定义表单'views'。 经测试,有没有使用缓存插件都可以完美统计。
说在最后:
大前端的 xiu、dux、tob 主题文章浏览数采用自定义字段 views 作为文章浏览数,确实是一大败笔呀!