WordPress技巧:顯示評論者的瀏覽器及版本資訊
阿新 • • 發佈:2018-12-23
上一週,由於不知名的主機問題,衡天客服藍冰熱心地幫我換了臺主機,也不知道為什麼,有幾位老使用者留言紛紛反映樣式有問題,tiandi只得留言問是什麼瀏覽器訪問的,自己也覺得有點麻煩。tiandi也不止一次地看到有些朋友的部落格評論處有IP來源國家,瀏覽器資訊以及作業系統資訊了,索性動動手,小改一下程式碼,也在評論處顯示評論者的瀏覽器及版本資訊吧,其他兩個似乎沒有什麼用的樣子,暫時不加了。
實現原理很簡單,在評論者發表評論時,記錄評論者的UA資訊,然後根據UA資訊,獲取使用者使用何種瀏覽器以及瀏覽器版本資訊,最終將這些資料返回輸出到頁面中。起先,tiandi以為需要先做記錄評論者UA資訊的功能,結果意外的在資料庫裡發現了,Wordpress其實已經做了這間事了。
那就簡單多了,直接從資料庫從取得該欄位資訊,然後判定瀏覽器以及瀏覽器版本即可。正好之前做蜘蛛爬行採集的時候,已經有做過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:★★★☆☆