WordPress主题中判断手机和iPad 等移动设备访问的函数
判断当前浏览网站的设备是否为移动设备,在结果中除去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移动设备访问判断的开发中有所帮助!
