WordPress 判断用户浏览器的全局变量和判断 IE 浏览器版本的方法

文 / @WordPress主题

WordPress主题兼容性处理

您好,我是一个有经验的WordPress主题开发者。在WordPress主题开发过程中,我们需要根据浏览器的不同,针对某些老旧的浏览器(如IE浏览器)写一些CSS,以解决兼容性问题。为了方便我们开发,WordPress为我们提供了一些全局变量,用于判断网站访客使用的浏览器,这些全局变量返回的是一个布尔值。

WordPress提供的判断用户浏览器的全部变量

$is_iphone(boolean)iPhoneSafari
$is_chrome(boolean)谷歌浏览器
$is_safari(boolean)Safari浏览器
$is_NS4(boolean)Netscape浏览器
$is_opera(boolean)Opera浏览器
$is_macIE(boolean)Mac平台的IE浏览器
$is_winIE(boolean)Windows平台的IE浏览器
$is_gecko(boolean)FireFox浏览器
$is_lynx(boolean)Linux系统中的纯文本浏览器
$is_IE(boolean)InternetExplorer

然而,这些变量没有包括一些国产浏览器,如360、搜狗等,因为这些浏览器使用的是所谓的IE、谷歌浏览器双内核,根据使用的模式不同会被判断成谷歌或者IE浏览器。

如何判断IE浏览器的版本?

上述代码可以判断用户使用的是哪个浏览器,但是却判断不了用户使用的浏览器的版本。因为IE浏览器的版本千差万别,所以判断一下IE浏览器的版本是非常有必要的。虽然WordPress没有提供判断IE浏览器版本的函数,但我们可以自己动手编写代码进行判断。

$browser=$_SERVER['HTTP_USER_AGENT'];
$browser=substr("$browser",25,8);
if($browser=="MSIE7.0"){
$classes[]='ie7';
$classes[]='ie';
}elseif($browser=="MSIE6.0"){
$classes[]='ie6';
$classes[]='ie';
}elseif($browser=="MSIE8.0"){
$classes[]='ie8';
$classes[]='ie';
}elseif($browser=="MSIE9.0"){
$classes[]='ie9';
$classes[]='ie';
}else{
$classes[]='ie';
}

我们可以将判断出来的IE浏览器版本写入到页面的body标签中,然后针对某个有Bug的浏览器专门写CSS。等这个浏览器彻底从互联网上消失了,直接把针对这个浏览器写的样式删除掉就可以了。这样做的好处是减少了CSS的Hack,后期维护起来也轻松了很多。

添加UTHEME为好友
扫码添加UTHEME微信为好友
· 分享WordPress相关技术文章,主题上新与优惠动态早知道。
· 微信端最大WordPress社群,限时免费入群。