WordPress文章点击统计ajax版,兼容wp super cache缓存代码及插件

Author: 陌小雨Date: 2016-08-11View: 74

自从陌小雨博客历经文章阅读数数次清零后,陌小雨对这个文章浏览数也不是很在意了,这也就是所谓的破罐子破摔吧,但自从陌小雨前段时间再启用wp super cache纯缓存代码后,陌小雨觉得还是有必要把这个浏览数折腾折腾,不然有的老的冷的文章浏览数一直是1、2、3啥的不好是吧。

相关文章:

分享WP Super Cache纯代码版

Xiu主题启用wp super cache插件后实现有新评论删除缓存

第一步:在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://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作为文章浏览数,确实是一大败笔呀!