好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

Wordpress利用Ajax实现文章浏览次数统计代码 - Wor

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的详细内容...

  阅读:57次