1. 程式人生 > >WordPress技巧:顯示評論者的瀏覽器及版本資訊

WordPress技巧:顯示評論者的瀏覽器及版本資訊

上一週,由於不知名的主機問題,衡天客服藍冰熱心地幫我換了臺主機,也不知道為什麼,有幾位老使用者留言紛紛反映樣式有問題,tiandi只得留言問是什麼瀏覽器訪問的,自己也覺得有點麻煩。tiandi也不止一次地看到有些朋友的部落格評論處有IP來源國家,瀏覽器資訊以及作業系統資訊了,索性動動手,小改一下程式碼,也在評論處顯示評論者的瀏覽器及版本資訊吧,其他兩個似乎沒有什麼用的樣子,暫時不加了。

實現原理很簡單,在評論者發表評論時,記錄評論者的UA資訊,然後根據UA資訊,獲取使用者使用何種瀏覽器以及瀏覽器版本資訊,最終將這些資料返回輸出到頁面中。起先,tiandi以為需要先做記錄評論者UA資訊的功能,結果意外的在資料庫裡發現了,Wordpress其實已經做了這間事了。

UA

那就簡單多了,直接從資料庫從取得該欄位資訊,然後判定瀏覽器以及瀏覽器版本即可。正好之前做蜘蛛爬行採集的時候,已經有做過getbrowser()的功能,直接拿來用,將下面程式碼放入function.php中。

function getbrowser($Agent)
    {
        if ($Agent == "")
		$Agent = $_SERVER['HTTP_USER_AGENT'];
        $browser = '';
        $browserver = '';

        if(ereg('Mozilla', $Agent) && ereg('Chrome', $Agent))
        {
            $temp = explode('(', $Agent);
            $Part = $temp[2];
            $temp = explode('/', $Part);
            $browserver = $temp[1];
            $temp = explode(' ', $browserver);
            $browserver = $temp[0];
            $browser = 'Chrome';
        }
	if(ereg('Mozilla', $Agent) && ereg('Firefox', $Agent))
        {
            $temp = explode('(', $Agent);
            $Part = $temp[1];
            $temp = explode('/', $Part);
            $browserver = $temp[2];
            $temp = explode(' ', $browserver);
            $browserver = $temp[0];
           $browser = 'Firefox';
        }
        if(ereg('Mozilla', $Agent) && ereg('Opera', $Agent)) 
        {
            $temp = explode('(', $Agent);
            $Part = $temp[1];
            $temp = explode(')', $Part);
            $browserver = $temp[1];
            $temp = explode(' ', $browserver);
            $browserver = $temp[2];
            $browser = 'Opera';
        }
	if(ereg('Mozilla', $Agent) && ereg('UCBrowser', $Agent)) 
        {
            $temp = strrchr($Agent,'/');
            $browserver = substr($temp,1);
            $browser = 'UC';
        }
        if(ereg('Mozilla', $Agent) && ereg('MSIE', $Agent))
        {
            $temp = explode('(', $Agent);
            $Part = $temp[1];
            $temp = explode(';', $Part);
            $Part = $temp[1];
            $temp = explode(' ', $Part);
            $browserver = $temp[2];
            $browser = 'Internet Explorer';
        }
        //其餘瀏覽器按需自己增加
        if($browser != '')
        {
            $browseinfo = $browser.' '.$browserver;
        } 
        else
        {
            $browseinfo = $Agent;
        }
		
        return $browseinfo;
    }

上面的getbrowser()函式返回的是瀏覽器名字+瀏覽器版本。在相關位置呼叫,讓其顯示出來即可。最後,開啟wordpress下的wp-includes/comment-template,查詢function get_comment_author_link函式,在最後一個return之前加入呼叫函式,以及顯示對應小圖示功能。

if($comment)
	$ua = $comment->comment_agent;
else
	$ua = "";
$tmp = getbrowser($ua);
if($tmp != "") {
	$br = explode(' ',$tmp);
	if(stristr($br[0],'chrome'))
		$brimg = "http://www.tiandiyoyo.com/wp-content/themes/freshblog/images/browser/chrome.png";
	elseif(stristr($br[0],'firefox'))
		$brimg = "http://www.tiandiyoyo.com/wp-content/themes/freshblog/images/browser/firefox.png";
	elseif(stristr($br[0],'opera'))
		$brimg = "http://www.tiandiyoyo.com/wp-content/themes/freshblog/images/browser/opera.png";
	elseif(stristr($br[0],'internet'))
		$brimg = "http://www.tiandiyoyo.com/wp-content/themes/freshblog/images/browser/ie.png";
	elseif(stristr($br[0],'Safari'))
		$brimg = "http://www.tiandiyoyo.com/wp-content/themes/freshblog/images/browser/Safari.png";
	elseif(stristr($br[0],'UC'))
		$brimg = "http://www.tiandiyoyo.com/wp-content/themes/freshblog/images/browser/ucweb.png";
	else 
		$brimg = "http://www.tiandiyoyo.com/wp-content/themes/freshblog/images/browser/anonymouse.png";
	$return .= " <img src='".$brimg."' title='".getbrowser($ua)."' />";
}

好,到這裡,大功告成,剩下的,有時間的話,再把其他瀏覽器補全了。目前只支援chrome,ie,firefox,opera等簡單的識別。

文章評分9次,平均分3.6