Wordpress利用Ajax实现文章浏览次数统计代码
WordPress 实现一个对浏览数的统计其实是很简单的,现在主流的方式有两种,一种是通过代码来统计,一种是通过 wp-postviews 插件,而前者在使用缓存插件的时候就无力了,后者支持缓存(使用 Ajax).
但实现一个这么简单的功能还得用一个插件实在是不划算,折腾了下,弄出一个可以支持缓存的代码,同样也是使用 Ajax,首先是代码:
function Bing_statistics_visitors( $cache = false ){ global $post ; $id = $post ->ID; if ( $cache ) $id = $_GET [ 'id' ]; if ( ( !is_singular() && ! $cache ) || ! $id ) return ; if ( WP_CACHE && ! $cache ){ echo '<script type="text/javascript">window.onload=function(){var e=null;window.XMLHttpRequest?e=new XMLHttpRequest:e=new ActiveXObject("Microsoft.XMLHTTP"),e.open("GET","' . admin_url( 'admin-ajax.php' ) . '",!0),e.send("action=visitors&id=' . $id . '")}</script>' ; return ; } $post_views = (int) get_post_meta( $id , 'views' , true ); if ( !update_post_meta( $id , 'views' , ( $post_views + 1 ) ) ) add_post_meta( $id , 'views' , 1, true ); } add_action( 'wp_head' , 'Bing_statistics_visitors' ); //解决缓存问题 function Bing_statistics_cache(){ Bing_statistics_visitors( true ); } add_action( 'wp_ajax_nopriv_visitors' , 'Bing_statistics_cache' ); add_action( 'wp_ajax_(HdhCmsTest111cn.net)visitors' , 'Bing_statistics_cache' ); //获取计数 function Bing_get_views( $get = true ){ global $post ; $views = number_format( (int) get_post_meta( $post ->ID, 'views' , true ) ); if ( $get ) return $views ; echo $views ; }代码在开启统计的时候自动会输出一段小 JS 来进行 Ajax,如果你已经开启缓存,使用我的代码的时候别忘了删除全部缓存文件.
用 Bing_get_views() 函数获取或输出数量,代码如下:
//获取 echo Bing_get_views(); //直接打印 Bing_get_views( false );另外我补充一种像js调用php页面统计代码,文章模板包含以下语句:
<SCRIPT src="counter.asp?articleId=<%=#articleId#%>"></SCRIPT >
counter.asp 文件为实现记数的asp文件:
<% dim articleId,sqlStr,hits articleId=int(trim(request.querystring( "articleId" ))) sqlStr= "update articles set hits=hits 1 where articleId=" & articleId '给文章点击数加1 conn.execute(sqlStr) '读出文章点击数 hits=conn.execute( "select hits from articles where articleId=" & articleId)(0) %> ' //打印出文章点击数 document.write(<%=hits%>)查看更多关于Wordpress利用Ajax实现文章浏览次数统计代码 - Wor的详细内容...
声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://haodehen.cn/did9031