国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > CMS > Wordpress > 正文

wordpress文章瀏覽量統計如何實現支持重復刷新不增加

2024-09-07 00:49:42
字體:
來源:轉載
供稿:網友
這篇文章主要為大家詳細介紹了wordpress文章瀏覽量統計如何實現支持重復刷新不增加,具有一定的參考價值,感興趣的小伙伴們可以參考一下,有需要的朋友可以收藏方便以后借鑒。

wordpress文章瀏覽量統計支持重復刷新不增加wordpress文章瀏覽量統計的代碼,支持統計所有人的瀏覽和排除機器人的瀏覽量。具體的實現步驟如下:

教程步驟:

1、在當前主題的functions.php文件中添加以下代碼,作用是統計計數以及獲取瀏覽數

/***********文章統計*********/  function process_postviews() {   global $user_ID, $post;   if(check_cookie($post))   return;   if(is_int($post)) {   $post = get_post($post);   }   if(!wp_is_post_revision($post)) {   if(is_single() || is_page()) {   $id = intval($post->ID);   //$post_views = get_post_custom($id);   $post_views = get_post_meta($id,'_check_count',true);   //統計所有人   $should_count = true;   //排除機器人   $bots = array('Google Bot' => 'googlebot', 'Google Bot' => 'google', 'MSN' => 'msnbot', 'Alex' => 'ia_archiver', 'Lycos' => 'lycos', 'Ask Jeeves' => 'jeeves', 'Altavista' => 'scooter', 'AllTheWeb' => 'fast-webcrawler', 'Inktomi' => 'slurp@inktomi', 'Turnitin.com' => 'turnitinbot', 'Technorati' => 'technorati', 'Yahoo' => 'yahoo', 'Findexa' => 'findexa', 'NextLinks' => 'findlinks', 'Gais' => 'gaisbo', 'WiseNut' => 'zyborg', 'WhoisSource' => 'surveybot', 'Bloglines' => 'bloglines', 'BlogSearch' => 'blogsearch', 'PubSub' => 'pubsub', 'Syndic8' => 'syndic8', 'RadioUserland' => 'userland', 'Gigabot' => 'gigabot', 'Become.com' => 'become.com','Baidu Bot'=>'Baiduspider');   $useragent = $_SERVER['HTTP_USER_AGENT'];   foreach ($bots as $name => $lookfor) {   if (stristr($useragent, $lookfor) !== false) {   $should_count = false;   break;   }   }   if($should_count) {   if(!update_post_meta($id, '_check_count', ($post_views+1))) {   add_post_meta($id, '_check_count', 1, true);   }   }   }   }   }    function check_cookie($post){   $COOKNAME = 'ashuwp_view';   if(isset($_COOKIE[$COOKNAME]))   $cookie = $_COOKIE[$COOKNAME];   else  return false;   $id = $post->ID;   if(empty($id)){   return false;   }   if(!empty($cookie)){   $list = explode('a', $cookie);   if(!empty($list) && in_array($id, $list)){   return true;   }   }   return false;   }   ### Function: Display The Post Views   function the_views($display = true,$id) {   $post_views = intval(get_post_meta($id,'_check_count',true));   $output = number_format_i18n($post_views);   if($display) {   echo $output;   } else {   return $output;   }   }    ### Function: Display Total Views   if(!function_exists('get_totalviews')) {   function get_totalviews($display = true) {   global $wpdb;   $total_views = intval($wpdb->get_var("SELECT SUM(meta_value+0) FROM $wpdb->postmeta WHERE meta_key = '_check_count'"));   if($display) {   echo number_format_i18n($total_views);   } else {   return $total_views;   }   }   }    ### Function: Add Views Custom Fields   add_action('publish_post', 'add_views_fields');   add_action('publish_page', 'add_views_fields');   function add_views_fields($post_ID) {   global $wpdb;   if(!wp_is_post_revision($post_ID)) {   add_post_meta($post_ID, '_check_count', 0, true);   }   }   ### Function: Delete Views Custom Fields   add_action('delete_post', 'delete_views_fields');   function delete_views_fields($post_ID) {   global $wpdb;   if(!wp_is_post_revision($post_ID)) {   delete_post_meta($post_ID, '_check_count');   }   }

2、一般只統計文章的瀏覽量,所以把下面的代碼添加到當前主題single.php文件的第一行,代碼作用是:用來設置cookie,會在用戶瀏覽器端增加一個形如: 123a45a45a113 其中字母a是分隔文章ID的,有效期是一天,由于設置cookie前不能有任何輸出,所以這些代碼要添加在文件的最最開頭。

$COOKNAME = 'ashuwp_view'; //cookie名稱   $TIME = 3600 * 24;   $PATH = '/';    $id = $posts[0]->ID;   $expire = time() + $TIME; //cookie有效期   if(isset($_COOKIE[$COOKNAME]))   $cookie = $_COOKIE[$COOKNAME]; //獲取cookie   else  $cookie = '';    if(empty($cookie)){   //如果沒有cookie   setcookie($COOKNAME, $id, $expire, $PATH);   }else{   //用a分割成數組   $list = explode('a', $cookie);   //如果已經存在本文的id   if(!in_array($id, $list)){   setcookie($COOKNAME, $cookie.'a'.$id, $expire, $PATH);   }   }

3、再在single.php文件的主循環部分(while( have_posts() ) : the_post();)后面自己喜歡的位置添加函數調用代碼:

process_postviews();

4、在要顯示瀏覽數的地方添加調用代碼:

<?php the_views(true,$post->ID);?>

保存文件即可。

本文是361模板轉自網絡,如有版權請聯系我們刪除,謝謝。

以上就是wordpress文章瀏覽量統計如何實現支持重復刷新不增加的全部內容,希望對大家的學習和解決疑問有所幫助,也希望大家多多支持武林網。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 册亨县| 陕西省| 馆陶县| 益阳市| 林西县| 灌南县| 玉田县| 新郑市| 沂源县| 德昌县| 镇沅| 交口县| 凤庆县| 长武县| 库车县| 五寨县| 龙江县| 黎川县| 海盐县| 兰西县| 双江| 鱼台县| 会宁县| 会宁县| 徐汇区| 新龙县| 彰武县| 陕西省| 乌海市| 尚义县| 太康县| 嵩明县| 务川| 张家口市| 安丘市| 富川| 定边县| 红安县| 肇东市| 台中市| 台山市|