Browser detection and OS detection with body_class

Add the first snippet to the functions.php of your wordpress theme then add the second snippet within the body tag of your wordpress header.php template.
<body <? body_class(); ?>>
This snippet will add class based on the users operating system "windows, mac, linux" and also the browser including iphone and if Internet explorer the specific version.

This wordpress snippet is an updated version of the browser detection post based on a snippet from Matt Varone and Nathan Rice.

	function mv_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';
			if(preg_match('/MSIE ([0-9]+)([a-zA-Z0-9.]+)/', $_SERVER['HTTP_USER_AGENT'], $browser_version))
			$classes[] = 'ie'.$browser_version[1];

		} else $classes[] = 'unknown';

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

		if ( stristr( $_SERVER['HTTP_USER_AGENT'],"mac") ) {
			 $classes[] = 'osx';
		   } elseif ( stristr( $_SERVER['HTTP_USER_AGENT'],"linux") ) {
  			 $classes[] = 'linux';
		   } elseif ( stristr( $_SERVER['HTTP_USER_AGENT'],"windows") ) {
			 $classes[] = 'windows';
		return $classes;

<?php body_class(); ?>

Comments  Leave a Reply

  1. Thanx for this snippet, but is possible to also identify the windows version?, like XP, Win 7 and Win 8?

Add a Comment

We're glad you have chosen to leave a comment. Please keep in mind that all comments are moderated according to our privacy policy, and all links are nofollow. Do NOT use keywords in the name field. Let's have a personal and meaningful conversation.

WordPress Launch Checklist

The Ultimate WordPress Launch Checklist

We've compiled all the essential checklist items for your next WordPress website launch into one handy ebook.
Yes, Send Me the Free eBook!