Wordpress利用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_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%>)

时间: 2024-10-06 19:47:15

Wordpress利用Ajax实现文章浏览次数统计代码的相关文章

wordpress可防刷新文章浏览次数统计代码

第一步 按照惯例,把以下代码扔到functions.php里  代码如下 复制代码 /***********文章统计*********/  function process_postviews() {       global $user_ID, $post;       if(check_cookie($post))           return;       if(is_int($post)) {           $post = get_post($post);       }  

asp实现静态页面浏览次数统计代码

在静态的html页面中要实现文章浏览次数的统计,可以进行js来调用asp教程文件带参数来实现,下面是我写的一款asp实现静态页面点击次数的代码. <% dim conn,connstr,rs connstr = "provider=microsoft.jet.oledb.4.0;data source=" & server.mappath(dbdns & syssitedbpath) call openconn() set rs = server.createob

php+mysql文章浏览次数统计及发布时间

一个网页能显示出"文件上传时间"和"浏览人数",不仅是文章历史的纪录,也能反映出该文章的受众欢迎度."文件上传时间"和"浏览人数"记录方法肯定很多,笔者根据自己的理解用php+mysql写了一个,不知代码够不够优化,但使用起来感觉不错,没有问题,今写出来和大家一起分享. 思路 1.文章上传时先在数据库中写入"网页地址"."上传时间time()"和"计数起点0". 2.

WordPress获得文章浏览次数及获取浏览次数最多的文章

纯代码统计文章浏览次数 1.在主题的 functions.php文件的最后一个 ?> 前面添加下面的代码:  代码如下 复制代码 function record_visitors()   {       if (is_singular())       {         global $post;         $post_ID = $post->ID;         if($post_ID)         {             $post_views = (int)get_po

利用cookie 实现访问次数统计代码

本教程举了两个实例说明利用cookie实现访问次数统计的代码,包括有php教程 js 两种方法 <?php global $count; $count=1; if(!isset($_COOKIE["visittime"])){ setcookie("visittime",date("y-m-d H:i:s")); setcookie("visitcount",1); echo "欢迎你第一次访问网站!"

JavaScript实现网站访问次数统计代码_javascript技巧

作为一个网站的管理员或者说站长,都希望知道到底有多少人访问了网站,这个时候就需要有一个统计功能来满足需要,当然功能比较单一和简单,如果想要强大的统计效果,那最好还是使用现在比较成熟的统计工具,比如站长统计或者腾讯统计等等. 代码一: 代码如下: <script type="text/javascript"> var caution=false function setCookie(name,value,expires,path,domain,secure) { var cu

WordPress 文章浏览次数与点击排行榜的例子

在一小时内刷新文章不会多次统计,只会被算作一次访问,把下面的代码复制粘贴到主题的 functions.php 里面:  代码如下 复制代码 /***** Postviews *****/ function record_visitors(){ if (is_singular()) { global $post; $post_ID = $post->ID; if($post_ID) { if(isset($_COOKIE['views'.$post_id.COOKIEHASH]) &&

PHP利用cookie进行访问次数统计代码

面这段代码是利用cookie实现的访问次数的统计. <?php global $count; $count=1; if(!isset($_COOKIE["visittime"])){ setcookie("visittime",date("y-m-d H:i:s")); setcookie("visitcount",1); echo "欢迎你第一次访问网站!"; } else{ setcookie(&

PHP jQuery ajax无刷新文件下载次数统计

本实例需要读者具备PHP.Mysql.jQuery以及html.css等相关的基本知识,在开发示例前,需要准备Mysql数据表,本文假设有一张文件下载表downloads,用来记录文件名.保存在文件服务器上的文件名以及下载次数.前提是假设下载表中已存在数据,这些数据可能来自项目中的后台上传文件时插入的,以便我们在页面中读取.downloads表结构如下:  代码如下 复制代码 CREATE TABLE IF NOT EXISTS `downloads` (    `id` int(6) unsi