免插件给wordpress添加显示评论者系统和浏览器(UA)信息

第一步: 编辑以下代码到主题文件functions.php中:

//UA信息   
function user_agent($ua){
//开始解析操作系统   
$os = null;
if(preg_match('/Windows 95/i',$ua) || preg_match('/Win95/',$ua)){
$os="Windows 95";
}elseif(preg_match('/Windows NT 5.0/i',$ua) || preg_match('/Windows 2000/i', $ua)){
$os="Windows 2000";
}elseif(preg_match('/Win 9x 4.90/i',$ua) || preg_match('/Windows ME/i', $ua)){
$os="Windows ME";
}elseif(preg_match('/Windows.98/i',$ua) || preg_match('/Win98/i', $ua)){
$os = "Windows 98";
}elseif(preg_match('/Windows NT 6.0/i',$ua)){
$os="Windows Vista";
}elseif(preg_match('/Windows NT 6.1/i',$ua)){
$os="Windows 7";
}elseif(preg_match('/Windows NT 5.1/i',$ua)){
$os = "Windows XP";
}elseif(preg_match('/Windows NT 5.2/i',$ua) && preg_match('/Win64/i',$ua)){
$os="Windows XP 64 bit";
}elseif(preg_match('/Windows NT 5.2/i',$ua)){
$os="Windows Server 2003";
}elseif(preg_match('/Mac_PowerPC/i',$ua)){
$os="Mac OS";
}elseif(preg_match('/Windows Phone/i',$ua)){
$os="windows phone7";
}elseif (preg_match('/Windows NT 6.2/i', $ua)){
$os="Windows 8";
}elseif(preg_match('/Windows NT 4.0/i',$ua) || preg_match('/WinNT4.0/i',$ua)){
$os="Windows NT 4.0";
}elseif(preg_match('/Windows NT/i',$ua) || preg_match('/WinNT/i',$ua)){
$os="Windows NT";
}elseif(preg_match('/Windows CE/i',$ua)){
$os="Windows CE";
}elseif(preg_match('/ipad/i',$ua)){
$os="iPad";
}elseif(preg_match('/Touch/i',$ua)){
$os="Touchw";
}elseif(preg_match('/Symbian/i',$ua) || preg_match('/SymbOS/i',$ua)){
$os="Symbian OS";
}elseif (preg_match('/iPhone/i', $ua)) {
$os="iPhone";
}elseif(preg_match('/PalmOS/i',$ua)){
$os="Palm OS";
}elseif(preg_match('/QtEmbedded/i',$ua)){
$os="Qtopia";
}elseif(preg_match('/Ubuntu/i',$ua)){
$os="Ubuntu Linux";
}elseif(preg_match('/Gentoo/i',$ua)){
$os="Gentoo Linux";
}elseif(preg_match('/Fedora/i',$ua)){
$os="Fedora Linux";
}elseif(preg_match('/FreeBSD/i',$ua)){
$os="FreeBSD";
}elseif(preg_match('/NetBSD/i',$ua)){
$os="NetBSD";
}elseif(preg_match('/OpenBSD/i',$ua)){
$os="OpenBSD";
}elseif(preg_match('/SunOS/i',$ua)){
$os="SunOS";
}elseif(preg_match('/Linux/i',$ua)){
$os="Linux";
}elseif(preg_match('/Mac OS X/i',$ua)){
$os="Mac OS X";
}elseif(preg_match('/Macintosh/i',$ua)){
$os="Mac OS";
}elseif(preg_match('/Unix/i',$ua)){
$os="Unix";
}elseif(preg_match('#Nokia([a-zA-Z0-9.]+)#i',$ua,$matches)){
$os="Nokia".$matches[1];
}elseif(preg_match('/Mac OS X/i',$ua)){
$os="Mac OS X";
}else{
$os='未知操作系统';
}
//开始解析浏览器   
if(preg_match('#(Camino|Chimera)[ /]([a-zA-Z0-9.]+)#i',$ua,$matches)){
$browser = 'Camino '.$matches[2];
}elseif(preg_match('#SE 2([a-zA-Z0-9.]+)#i',$ua,$matches)){
$browser='搜狗浏览器 2'.$matches[1];
}elseif(preg_match('#360([a-zA-Z0-9.]+)#i',$ua,$matches)){
$browser='360浏览器 '.$matches[1];
}elseif (preg_match('#Maxthon( |\/)([a-zA-Z0-9.]+)#i',$ua,$matches)){
$browser='Maxthon '.$matches[2];
}elseif (preg_match('#Chrome/([a-zA-Z0-9.]+)#i',$ua,$matches)){
$browser='Chrome '.$matches[1];
}elseif (preg_match('#Safari/([a-zA-Z0-9.]+)#i',$ua,$matches)){
$browser='Safari '.$matches[1];
}elseif(preg_match('#opera mini#i', $ua)) {
preg_match('#Opera/([a-zA-Z0-9.]+)#i', $ua, $matches);
$browser='Opera Mini '.$matches[1];
}elseif(preg_match('#Opera.([a-zA-Z0-9.]+)#i',$ua,$matches)){
$browser='Opera '.$matches[1];
}elseif(preg_match('#(j2me|midp)#i', $ua)) {
$browser="J2ME/MIDP Browser";
}elseif(preg_match('/GreenBrowser/i', $ua)){
$browser='GreenBrowser';
}elseif (preg_match('#TencentTraveler ([a-zA-Z0-9.]+)#i',$ua,$matches)){
$browser='腾讯TT浏览器 '.$matches[1];
}elseif(preg_match('#UCWEB([a-zA-Z0-9.]+)#i',$ua,$matches)){
$browser='UCWEB '.$matches[1];
}elseif(preg_match('#MSIE ([a-zA-Z0-9.]+)#i',$ua,$matches)){
$browser='Internet Explorer '.$matches[1];
}elseif(preg_match('#avantbrowser.com#i',$ua)){
$browser='Avant Browser';
}elseif(preg_match('#PHP#', $ua, $matches)){
$browser='PHP';
}elseif(preg_match('#danger hiptop#i',$ua,$matches)){
$browser='Danger HipTop';
}elseif(preg_match('#Shiira[/]([a-zA-Z0-9.]+)#i',$ua,$matches)){
$browser='Shiira '.$matches[1];
}elseif(preg_match('#Dillo[ /]([a-zA-Z0-9.]+)#i',$ua,$matches)){
$browser='Dillo '.$matches[1];
}elseif(preg_match('#Epiphany/([a-zA-Z0-9.]+)#i',$ua,$matches)){
$browser='Epiphany '.$matches[1];
}elseif(preg_match('#UP.Browser/([a-zA-Z0-9.]+)#i',$ua,$matches)){
$browser='Openwave UP.Browser '.$matches[1];
}elseif(preg_match('#DoCoMo/([a-zA-Z0-9.]+)#i',$ua,$matches)){
$browser='DoCoMo '.$matches[1];
}elseif(preg_match('#(Firefox|Phoenix|Firebird|BonEcho|GranParadiso|Minefield|Iceweasel)/([a-zA-Z0-9.]+)#i',$ua,$matches)){
$browser='Firefox '.$matches[2];
}elseif(preg_match('#(SeaMonkey)/([a-zA-Z0-9.]+)#i',$ua,$matches)){
$browser='Mozilla SeaMonkey '.$matches[2];
}elseif(preg_match('#Kazehakase/([a-zA-Z0-9.]+)#i',$ua,$matches)){
$browser='Kazehakase '.$matches[1];
}else{
$browser='未知浏览器';
}
return $os." | ".$browser;
}

以上包括了主流和大部分UA信息,如果你觉得不够还可以找wordpress显UA插件,从里面扒UA的代码(如“show-useragent”插件的browser.php文件)。

第二步:在你需要显示的地方调用以下代码即可:

<?php echo user_agent($comment->comment_agent); ?>

你也可控制只让管理员看到或不显示管理员的UA信息,具体方法请参考:
《免插件给wordpress添加显示评论者ip地理信息》的最后部分。

最后修改:2019 年 06 月 07 日 15 : 03
如果觉得我的文章对你有用,请随意赞赏

发表评论

1 条评论

  1. masy

    ..