Skip to content

Instantly share code, notes, and snippets.

@lenivene
Last active July 12, 2016 09:15
Show Gist options
  • Save lenivene/999c5a3fc6ddfca221b294e798708d44 to your computer and use it in GitHub Desktop.
Save lenivene/999c5a3fc6ddfca221b294e798708d44 to your computer and use it in GitHub Desktop.
Get platform and browser user WordPress
<?php
/**
* Example <html <?php html_class( 'no-js' ); ?>>
*/
function html_class( $class = '' ){
echo 'class="' . join( ' ', get_html_class( $class ) ) . '"';
}
function get_html_class( $class = '' ){
$useragent = $_SERVER['HTTP_USER_AGENT'];
$useragent = isset( $useragent ) ? $useragent : '';
$classes = array();
if( preg_match( '/linux/i', $useragent ) ){
$classes[] = 'linux';
}
elseif( preg_match( '/macintosh|mac os x/i', $useragent ) ){
$classes[] = 'mac';
}
elseif( preg_match( '/windows|win32/i', $useragent ) ){
$classes[] = 'windows';
}
elseif( preg_match( '/android/i', $useragent ) ){
$classes[] = 'android';
}
elseif( preg_match( '/palm/i', $useragent ) ){
$classes[] = 'palm';
}
elseif( preg_match( '/iphone/i', $useragent ) ){
$classes[] = 'iphone';
}
elseif( preg_match( '/blackberry/i', $useragent ) ){
$classes[] = 'blackberry';
}
elseif( preg_match( '/ipod/i', $useragent ) ){
$classes[] = 'ipod';
}
elseif( preg_match( '/ipad/i', $useragent ) ){
$classes[] = 'ipad';
}
else{
$classes[] = 'plataform';
}
if( preg_match( '/MSIE/i', $useragent ) && ! preg_match( '/Opera/i', $useragent ) ){
$classes[] = "msie"; // Internet Explorer
}
elseif( preg_match( '/Firefox/i', $useragent ) ){
$classes[] = "firefox"; // Firefox
}
elseif( preg_match( '/Chrome/i', $useragent ) ){
$classes[] = "chrome"; // Chrome
}
elseif( preg_match( '/Safari/i', $useragent )){
$classes[] = "safari";
}
elseif( preg_match( '/Opera/i', $useragent ) ){
$classes[] = "opera";
}
elseif( preg_match( '/Netscape/i', $useragent ) ){
$classes[] = "netscape";
}
else{
$classes[] = 'browser';
}
if ( ! empty( $class ) ) {
if ( !is_array( $class ) )
$class = preg_split( '#\s+#', $class );
$classes = array_merge( $classes, $class );
}
$classes = array_map( 'esc_attr', $classes );
return array_unique( $classes );
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment