判断移动设备(手机和平板)访问的 PHP 类库:Mobile Detect ,它可以用来检测移动设备环境,它有一个非常完整的库,可以检测出所用的设备类型(包括操作类型,以及手机品牌等都能检测)和浏览器的详细信息。
判断当前浏览网站的设备是否为移动设备,在结果中除去iPad
如果只是简单的判断下当前浏览博客的设备是否为移动设备,那么我们可以使用 WordPress 默认的函数 wp_is_mobile
函数来判断,但是这个函数有个问题,它把 iPad 也算作移动设备,但是 iPad 设备比较大,有时候我们仅仅希望在手机看到不同的设计和功能,所以我们可以使用 我是水煮鱼 写了一个 wpjam_is_mobile
函数,去除了 iPad :
function wpjam_is_mobile() { if ( empty($_SERVER['HTTP_USER_AGENT']) ) { return false; } elseif ( ( strpos($_SERVER['HTTP_USER_AGENT'], 'Mobile') !== false && strpos($_SERVER['HTTP_USER_AGENT'], 'iPad') === false) // many mobile devices (all iPh, etc.) || strpos($_SERVER['HTTP_USER_AGENT'], 'Android') !== false || strpos($_SERVER['HTTP_USER_AGENT'], 'Silk/') !== false || strpos($_SERVER['HTTP_USER_AGENT'], 'Kindle') !== false || strpos($_SERVER['HTTP_USER_AGENT'], 'BlackBerry') !== false || strpos($_SERVER['HTTP_USER_AGENT'], 'Opera Mini') !== false || strpos($_SERVER['HTTP_USER_AGENT'], 'Opera Mobi') !== false ) { return true; } else { return false; } }
WordPress判断手机移动设备
如果你打算制作针对手机移动用户的WordPress主题,可能就需要判断手机移动客户端。昨天在 wpdaxue 那里看到了 wordpress免插件判断移动设备 ,与大家一起分享。
这是一段php通用的判断移动浏览器的函数,原理比较简单,就是判断浏览器返回的user_agent,条件包括手机系统、品牌和窗口大小。
以WordPress为例,在主题的 functions.php 内加上如下代码,目前已包含常见移动浏览器的useragent,基本上可以涵盖可能会用手机上网的用户群了。
function is_mobile() { $user_agent = $_SERVER['HTTP_USER_AGENT']; $mobile_browser = Array( "mqqbrowser", //手机QQ浏览器 "opera mobi", //手机opera "juc","iuc",//uc浏览器 "fennec","ios","applewebKit/420","applewebkit/525","applewebkit/532","ipad","iphone","ipaq","ipod", "iemobile", "windows ce",//windows phone "240x320","480x640","acer","android","anywhereyougo.com","asus","audio","blackberry","blazer","coolpad" ,"dopod", "etouch", "hitachi","htc","huawei", "jbrowser", "lenovo","lg","lg-","lge-","lge", "mobi","moto","nokia","phone","samsung","sony","symbian","tablet","tianyu","wap","xda","xde","zte" ); $is_mobile = false; foreach ($mobile_browser as $device) { if (stristr($user_agent, $device)) { $is_mobile = true; break; } } return $is_mobile; }
然后在主题任意模板如顶部加上如下判断:
<?php if (is_mobile() ): ?> //怎样怎样..(这里可以添加一个mobile.css,如<link rel="stylesheet" type="text/css" media="all" href="<?php echo get_template_directory_uri(); ?>/mobile.css" />) <?php endif ;?>
还需要注意的一点:不管是单独的WordPress主题还是自适应主题,都需要在头部<head>将添加下面meta,否者可能导致手机显示字体过小等问题。
<meta name="viewport" content="width=device-width"/>
两个wordpress小技巧,希望对大家在wordpress移动设备访问判断的开发中有所帮助!
未经允许不得转载:欲思博客 » WordPress主题中判断手机和iPad 等移动设备访问的函数
评论2