由于现在浏览器存在大量的兼容的问题,特别是在国内IE6.0还存在大量的用户情况下,存在大量的浏览器兼容性问题,而且IE与Firefox、Chrome也存在兼容的问题,所以我们在为WordPress写主题的时候就需要不同的样式来渲染不同的浏览器。
在WordPress中其实已经考虑到浏览器兼容问题,系统以下变量来判断不同浏览器及各种使用平台:


$is_iphone – iPhone Safari
$is_chrome – Google Chrome
$is_safari – Safari
$is_NS4 – Netscape 4
$is_opera – Opera
$is_macIE – Mac Internet Exlporer
$is_winIE – Windows Internet Exlporer
$is_gecko – FireFox
$is_lyn
$is_IE – Internet Explorer
$is_apache
$is_IIS
$is_iis7

如果我们要对不同的浏览器或者平台使用不同的Class样式,可以使用以上全局变量进行判断,你可以将如下代码拷贝到你主题的functions.php文件中:


add_filter('body_class','browser_body_class');
function browser_body_class($classes) {
	global $is_lynx, $is_gecko, $is_IE, $is_opera, $is_NS4, $is_safari, $is_chrome, $is_iphone;

	if($is_lynx) $classes[] = 'lynx';
	elseif($is_gecko) $classes[] = 'gecko';
	elseif($is_opera) $classes[] = 'opera';
	elseif($is_NS4) $classes[] = 'ns4';
	elseif($is_safari) $classes[] = 'safari';
	elseif($is_chrome) $classes[] = 'chrome';
	elseif($is_IE) $classes[] = 'ie';
	else $classes[] = 'unknown';

	if($is_iphone) $classes[] = 'iphone';
	return $classes;
}

当然你在浏览首页时,Body标签就会添加指定的样式,如下所示:


<body class="home blog logged-in safari">

这样你就可以更加不同的平台设置不同的样式,从而解决各种浏览器不兼容的问题。