【wordpress利用ajax实现文章浏览器】Wordpress利用Ajax实现文章浏览次数统计代码

更新时间:2019-06-03    来源:WordPress    手机版     字体:

【www.bbyears.com--WordPress】

但实现一个这么简单的功能还得用一个插件实在是不划算,折腾了下,弄出一个可以支持缓存的代码,同样也是使用 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_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文件
<%
"###################
"######开始#########
"BY 王向超
"###################
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%>)

本文来源:http://www.bbyears.com/wangyezhizuo/52885.html