wordpress使用全局变量判断浏览器及使用平台


由于现在浏览器存在大量的兼容的问题,特别是在国内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文件中:

<?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">

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