上一周,由于不知名的主机问题,衡天客服蓝冰热心地帮我换了台主机,也不知道为什么,有几位老用户留言纷纷反映样式有问题,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等简单的识别。
不错,我试试
现在已经出来一个插件,安装即可!
WP-UserAgent显示评论者系统和浏览器版本信息
确实有这个插件了。
这玩意儿有个插件吧
应该有的
这个不错哦。