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

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

26561 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. 番茄 :

    最后还是觉得chrome 对网页特效最流畅!

  2. 好文好文啊!前排严重支持~

  3. 国产浏览器大多是IE内核的…我访问别人博客时候经常被提醒说是改换浏览器啦……

  4. tiandi :

    试试这个

  5. LEAVES :

    其实我用的是猎豹,它显示的是IE8.0

  6. LEAVES :

    正是我要找的,我去加了看看。

  7. 小乐 :

    可以再加个国旗··

  8. 多说似乎无解吧?

  9. FROYO :

    对对,UserAgent就在数据库里躺着呢,不过WP有插件实现起来容易一些

    • tiandi :

      恩,插件有其他2个功能,暂时不需要。而且一般自己能写的都自己写,基本不用别人的插件,除非官方的。

  10. 好吧,我用的火狐。。。

  11. 大发 :

    wp数据库存了好多没用的东西。。。

  12. 好,学习了,最近做了一个关于wordpress技术研究的网站

  13. 强悍的wp,我以为只有js可以做

  14. 神父 :

    多说可不可以显示出来

  15. WP已经记录UA到数据库里?突然觉得隐私暴露了。。。
    另外,你最后代码的ELSE IF 应该替换为SWITH CASE的才对,曾记老师说过。

  16. 我记得这个好像wp表里面本来已经记录和这个信息了。而且啊还有这个插件可以显示

  17. 这个效果不错

载入分页评论...