php手机站自动跳转,wordpress(php)识别手机访问自动跳转的案例

本文介绍了如何通过PHP代码实现在WordPress中根据用户设备自动跳转到手机或电脑版界面,包括固定连接形式的处理和不同浏览器类型的判断。同时提供了针对不同类型页面(文章和分类)的自定义URL转换方法。
摘要由CSDN通过智能技术生成

以前经常会遇到使用手机访问和电脑访问进入不同页面的情况,例如3g.qq.com,discuz也逐渐有了这种功能。当然,很多系统是可以自己设置是否在手机访问时跳转的。但wordpress没有,虽然有几款手机访问插件,但总体欠佳。我们可以自己写手机访问界面程序,然后让手机访问时自动跳转,这样可以节约流量,还能使界面更自定义。但要如何实现手机浏览器访问时自动跳转呢?废话不多,直接上代码吧:

< ?php

//本段代码处理域名,可以实现手机访问的话就跳转到手机页面

$request_uri = isset($_SERVER['REQUEST_URI']) ? $_SERVER['REQUEST_URI'] : '';//判断地址后面部分,带主域名后面的"/"

$request_uri=substr($request_uri,1);//去掉那一"/"

if(preg_match('@^([0-9]+)@i',$request_uri,$matches)){

header('HTTP/1.1 301 Moved Permanently');//发出301头部

header('Location:'.bloginfo('url').'/?p='.$matches[1]);

exit();//解释一下,这一段是当初只能通过短连接访问本站时写的,如果没有必要,你完全可以自己修改或删除。

}//这里开始真正的手机判断

if(!preg_match('/(mozilla|m3gate|winwap|openwave|MSIE 8.0|MSIE 7.0|MSIE 6.0|Firefox|Chrome|Safari|Opera)/i', $_SERVER['HTTP_USER_AGENT']))//判断浏览器类型

{

header('HTTP/1.1 301 Moved Permanently');//发出301头部

header('Location: '.bloginfo('url').'/wap/index-wap2.php'.$request_uri);//跳转到我的新域名地址,这是因为本站安装了wp-t-wap插件,并采用了文章短连接的形式

exit();

}

?>

使用上面这段代码需要将固定连接修改为默认形式,将它放在你对应的主题的header.php的开头。当然,您也可以修改和写出你喜欢的网址形式的代码,我这里只是抛砖引玉一下。

第一个if语句实现的是:用户直接用文章ID可以直接跳转到文章,这样的好处是方便访客记忆网址,或直接告诉朋友文章ID号就可以被访问了。如我只 需要输入http://www.nunubi.com/1就可以直接跳转到http://www.nunubi.com/?p=1

第二个if语句实现的是跳转到手机访问页面,即浏览器不属于主流浏览器时,跳转到/wap/index-wap2.php页面,后缀就是?p=id 或者?cat=cid的形式,这样你应该明白为什么要采用第一种固定连接形式了吧。如上面的例子,我手机访问http://www.nunubi.com /1网址直接跳转为http://www.nunubi.com/wap/index-wap2.php?p=1

上面代码只适合以原短连接形式网址的网站。自定义固定连接后,由于无法直接获取ID,所以需要修改。修改如下:

if(is_single()){

if ( have_posts() ) : while ( have_posts() ) : the_post();

$post_id=$post->ID;

$perlink="?p=$post_id";

endwhile; else:

endif;

}

else if (is_category()) {

global $wp_query;

$cat_id = $wp_query->get_queried_object_id();

$perlink="?cat=$cat_id";

}else{

$perlink="";

}

if(!preg_match('/(mozilla|m3gate|winwap|openwave|MSIE 8.0|MSIE 7.0|MSIE 6.0|Firefox|Chrome|Safari|Opera)/i', $_SERVER['HTTP_USER_AGENT']))//判断浏览器类型

{

header('HTTP/1.1 301 Moved Permanently');//发出301头部

header('Location: '.get_bloginfo('url').'/wap/index-wap2.php'.$perlink);//跳转到我的新域名地址

exit();

}

这段代码判断了两种情况,一种是如果是文章页,就获取文章的ID,实现?p=ID,如果是分类页,就获取分类ID,实现?cat=ID,其他的就全部进入手机访问的首页界面。

文章写的有点乱,希望大家凑合看吧,稍加思考研究还是可以很快解决问题的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值