調用WordPress函數(shù)統(tǒng)計文章訪問量及PHP原生計數(shù)器的實現(xiàn)
1.首先介紹WordPress的兩款功能強大的插件:
(1)Count per Day 是一個非常強大的訪客數(shù)量統(tǒng)計插件,可以統(tǒng)計每天、昨天、每周、每月等等的訪客數(shù)量(根據IP進行統(tǒng)計),統(tǒng)計在線訪客數(shù)、瀏覽器、搜索詞等等,自帶多種調用簡碼、模板標簽以及小工具,方便你自行調用和集成。
(2)StatPressCN,實時顯示blog的訪問統(tǒng)計,完美支持中文(如搜索關鍵字等)。它可以集中顯示來訪者、爬蟲、搜索關鍵字、訂閱統(tǒng)計、瀏覽器、操 作系統(tǒng)等信息,方便您及時把握blog的訪問情況,同時還提供了定制輸出、統(tǒng)計權限、信息存儲期等個性化設置選項。另外,您可以隨時掌握blog被訂閱的 情況并把它放在側欄中顯示,還可以獲得所有頁面(包括post、page、archive以及homepage)被訪問的情況,還可以在側欄中顯示 blog中被訪問最多的熱門文章等。 增加了對中國大陸和港臺地區(qū)的本地化語言支持(目前支持wp-config.php中設置為zh_CN、zh_HK和zh_TW)。
安裝插件的方式固然功能很強大,但是弊端也是顯而易見的——容易影響網頁加載速度,所以我放棄了這種方式。
2.其次,是簡單的幾條代碼,通過統(tǒng)計網頁刷新的次數(shù)來記錄訪客數(shù)的,把以下代碼放到function.php中:
/* 訪問計數(shù) */ function record_visitors() { if (is_singular()) { global $post; $post_ID = $post->ID; if($post_ID) { $post_views = (int)get_post_meta($post_ID, 'views', true); if(!update_post_meta($post_ID, 'views', ($post_views+1))) { add_post_meta($post_ID, 'views', 1, true); } } } } add_action('wp_head', 'record_visitors'); /// 函數(shù)名稱:post_views /// 函數(shù)作用:取得文章的閱讀次數(shù) function post_views($before = '(點擊 ', $after = ' 次)', $echo = 1) { global $post; $post_ID = $post->ID; $views = (int)get_post_meta($post_ID, 'views', true); if ($echo) echo $before, number_format($views), $after; else return $views; }
然后在需要顯示的界面,比如footer.php或header.php等頁面調用:
<?php post_views(' ', ' 次'); ?>
3.PHP原生實現(xiàn)訪問計數(shù)器示例:
index.php
<?php include("counter.php") ?> <html> <head> <title>訪問計數(shù)器</title> </head> <body> <center> <h1>訪問者計數(shù)器</h1> <U> <!--下劃線--> <font size="6" face="隸書" >你是第</font> <B> <font size="9" face="Verdana" color="#ffcc00"> <?php Counter() ?> <!--調用函數(shù)--> </font> </B> <font size="6" face="隸書" >個訪問者</font> </U> </center> </body> </html>
counter.php
<?php //$five,$four 等變量表示零的個數(shù),放在數(shù)字前邊構成6位 function Counter() { //定義函數(shù) $five = "00000"; //聲明變量 $four = "0000"; $three = "000"; $two = "00"; $one = "0"; $counter = "record.dat"; //存放訪問數(shù)的目的文件,.dat格式 if(!file_exists($counter)) //判斷文件是否存在 { $counter = fopen($counter,"w"); fputs($counter,"0"); //寫入文件 fclose($counter); } else { $fp = fopen($counter,"r+"); $num = fgets($fp,"1024"); //如果文件存在則讀出文件,并加 1 $num = $num + 1; if($num < 10) print "$five"."$num"; elseif($num < 100) print "$four"."$num"; elseif($num < 1000) print "$three"."$num"; elseif($num < 10000) print "$two"."$num"; elseif($num < 100000) print "$one"."$num"; else print "$num"; } $fp = fopen($counter,"w"); fputs($fp,"$num"); fclose($fp); } ?>
相關文章
Laravel框架控制器的middleware中間件用法分析
這篇文章主要介紹了Laravel框架控制器的middleware中間件用法,結合具體案例形式分析了Laravel框架控制器的middleware中間件相關使用步驟、操作技巧與注意事項,需要的朋友可以參考下2019-09-09php empty 函數(shù)判斷結果為空但實際值卻為非空的原因解析
這篇文章主要介紹了php empty 函數(shù)判斷結果為空但實際值卻為非空的原因解析,下面是腳本之家小編處理之后的調試記錄,分享到腳本之家平臺,感興趣的朋友一起看看2018-05-05IIS6.0 開啟Gzip方法及PHP Gzip函數(shù)分享
因為在做一個項目,項目里面服務器主要提供數(shù)據,但是數(shù)據多了文件就大了,比較浪費流量和時間,我們便用Gzip來處理。我在本機上是apache,服務器上是IIS6.0,用的是php,那么我就在這里分享一下。2014-06-06