【DeveMobile实例】利用Mobile Detect 制作单独移动端页面项目
Mobile Detect 这个PHP 类库Jeff 很早就运用到实际项目中了,如Devework 主题,移动主题、DW Mobile Swither及最近的DeveMobile主题主页
Mobile Detect 简介
Mobile Detect 是一个轻量级PHP 移动设备探测类,它通过HTTP Header 中的User-Agent 字符串来检测移动设备。该PHP 类库最强大的地方是,它有一个非常完整的库,可以检测出所用的设备类型(包括操作类型,以及手机品牌等都能检测)和浏览器的详细信息。
使用演示:
// Include and instantiate the class. require_once 'Mobile_Detect.php'; $detect = new Mobile_Detect; // Any mobile device (phones or tablets). if ( $detect->isMobile() ) { } // Any tablet device. if( $detect->isTablet() ){ } // Exclude tablets. if( $detect->isMobile() && !$detect->isTablet() ){ } // Check for a specific platform with the help of the magic methods: if( $detect->isiOS() ){ } if( $detect->isAndroidOS() ){ } // Alternative method is() for checking specific properties. // WARNING: this method is in BETA, some keyword properties will change in the future. $detect->is('Chrome') $detect->is('iOS') $detect->is('UC Browser') |
---|
实例介绍
DeveMobile 主题主页pc、移动单独页面的实现
可能你发现DeveMobile主题主页用pc浏览器及在手机上的访问页面是不同的,实现的方法异常简单,就是上面的代码:
if ( $detect->isMobile() ) { include('mobile-index.php'); }else { include('index.php'); } |
---|
Devework 主题手机版的切换实现
如果你希望为你的WordPress 主题制作一个附属的手机版本(附属是指文件都是单独在一个主题中且自动切换,而非一个pc端主题+一个手机主题),思路其实可以这样:对单个主题构成文件采用pc端+手机独立的方法,比如说header.php,正常PC 访问就是主题根目录的header.php,移动端访问则为mobile/header.php(即独立另外个header.php)。那么借助Mobile Detect,你可以这样实现(以下部分使用“伪代码”):
比如说heade.php 原来是这样的:
<!DOCTYPE html> ..... ..... <?php wp_head();?> <head/> |
---|
那么要按照上面的思路,则为:
<?php if($detect->isMobile())): include('mobile/header.php');else : ?> <!DOCTYPE html> ..... ..... <?php wp_head();?> <head/> <?php endif;?> |
---|
以此类推,其他主题文件都是如此。
PS:WordPress虽然有 wp_mobile
这个函数,但这不在本文讨论之列。
- 时间序列预测全攻略(附带Python代码)
- “鼠标移入显示悬浮框”特效,也可以“高大上”
- 用交叉验证改善模型的预测表现(适用于Python和R)
- 前端特效制作 | CSS3圆形风格面包屑导航
- CSS3 倒影
- 写一只具有识别能力的图片爬虫
- 【今日问题】变量未初始化引起的崩溃
- 前端特效开发 | 点击查看大图相册效果
- 开发 | 星际争霸2人工智能研究环境 SC2LE 初体验
- 开发 | 我做了12万条的影评分析,告诉你《战狼Ⅱ》都在说些啥
- JavaScript | 函数定义的两种方法;预编译与执行
- jQuery特效 | 导航底部横线跟随鼠标缓动
- JavaScript | 选中并获取多行文本框内容的效果
- JavaScript | 动画显示比例的投票效果
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 使用druid
- UDP实现多人聊天室
- 请求(doFilter)与响应乱码(BaseController+自定义注解@ContentType(““))集中处理
- 反射:Reflect(获取类对象三种方法)
- getParameterMap()返回参数需要对应实体类类型,否则收不到----打卡
- 类对象 与 类的对象
- Lambda什么时候使用+简化匿名内部类
- PreparedStatement连接数据库实现登录验证,避免sql注入问题
- 自己封装数据库工具类
- Git---->Linux常用命令+主干、分支合并,发生冲突+当紧急任务来时,文件暂存+忽略文件不提交
- 使用servlet完成简单的登录功能(servlet与html之间跳转(重定向))
- gitee配置
- idea--->先交给git本地仓库--->再push到远程仓库
- 图书系统优化分页与搜索跳转
- 解决ie浏览器回车不刷新验证码问题