首页 » Wordpress » WordPress技巧:显示评论者的浏览器及版本信息

WordPress技巧:显示评论者的浏览器及版本信息

27817 41

上一周,由于不知名的主机问题,衡天客服蓝冰热心地帮我换了台主机,也不知道为什么,有几位老用户留言纷纷反映样式有问题,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

本文原始地址:https://www.tiandiyoyo.com/2013/08/display-comment-browser-version/
本站所有文章,除了特别注明外,均为本站原创,转载请注明出处来自www.tiandiyoyo.com

您可能还会对以下文章感兴趣:

评论前先开启评论开关:


41 Comments

  1. 现在已经出来一个插件,安装即可!
    WP-UserAgent显示评论者系统和浏览器版本信息

  2. 西门 :

    这玩意儿有个插件吧

  3. yxiao :

    这个不错哦。

载入分页评论...