当前位置: 首页 > wordpress > 正文

让 wordpress 支持手机访问

一时兴起,用手机打开了 klwang.info。竟然是无法访问,真是太让人遗憾了。

网上搜了一下,很多人都说使用要 wp-wap, 完了还要改变访问的地址为 klwang.info/wap, 为了还看,还要另外设置一个域名解析。

我就在想了,既然有了新的访问地址,那可不可以在index.php中加一些代码,判断访问的来源,如果是手机访问,就重定向到 klwang.info/wap 好了,这样还免得设置解析,最重要的是访问者可以不用输入专门的手机版域名。

接着找了PHP关于$_SERVER的所有变量,挑了一些 可能有用的变量,如

HTTP_USER_AGENT
VIA

关于 HTTP_USER_AGENT, 实在是比较强大,可以知道所有的访问来自什么设备,只要grep就行了,具体的设备和 HTTP_USER_AGENT 值的关系,可以参考这篇文档: Mobile Browser ID (User-Agent) Strings, 文章里列出了几乎世界上所有的移动设备HTTP_USER_AGENT信息,为了方便,还提供了下面这么一段代码,来获取这写 AGENT

// Marc Gray's PHP script (untested by us)
// use at your discretion
<?php
$page = file_get_contents('1.html');
preg_match_all('/<(p) class="g-c-[ns]"[^>]*>(.*?)<\/p>/s', $page, $m); 

$agents = array();
foreach($m[2] as $agent) {
  $split = explode("\n", trim($agent));
  foreach($split as $item) {
    $agents[] = trim($item);
  }
}
// $agents now holds every user agent string, one per array index, trimmed
foreach($agents as $agent) {
 echo($agent."\n");
}
?>

代码里边说他们没有测试过,我可以告诉大家,我测试了,确实可以用,但是结果确实很多, 一共 477 行, 下面是其中的几行,写在这里让大家看看 HTTP_USER_AGENT 到底长啥样

Mobile/9B206 Safari/7534.48.3
Mozilla/5.0 (iPhone; CPU iPhone OS 5_1 like Mac OS X)
AppleWebKit/534.46 (KHTML, like Gecko) Version/5.1 Mobile/9B176
Safari/7534.48.3
Mozilla/5.0 (iPhone; CPU iPhone OS 5_0_1 like Mac OS X)
AppleWebKit/534.46 (KHTML, like Gecko) Version/5.1 Mobile/9A405
Safari/7534.48.3

这里是大量的省略号

Mozilla/5.0 (iPhone; CPU iPhone OS 5_0_1 like Mac OS X)
AppleWebKit/534.46 (KHTML, like Gecko) Version/5.1 Mobile/9A405
Safari/7534.48.3
Mozilla/5.0 (iPod; U; CPU iPhone OS 4_3_3 like Mac OS
X; en-us) AppleWebKit/533.17.9 (KHTML, like Gecko) Version/5.0.2

有了所有的移动设备,就好办了,只要在 HTTP_USER_AGENT 中找这些东东就ok了,只要找到一个,就 Location 到 klwang.info/wap
上边的代码改成这样就行了

// $agents now holds every user agent string, one per array index, trimmed
foreach($agents as $agent) {
 if($agent == $_SERVER['HTTP_USER_AGENT']){
    header("Location: http://klwang.info/wap");
}

好了,思路有了,也知道怎么搞了,可以动手了, 打开 wordpress,搜索 wap-wp

wap-wp-search

咦? 这个 Wireless-Wordpress 是啥? 看了介绍,突然发现我半天的思考白费了,竟然有人已经把我想的事情全做好了,而且还做的更好。

好吧,就直接用人家的插件吧,照着引导设置,也很简单,就不废话了

这下玩大了, 上面说了一大堆,都暴露除了 klwang.info/wap 这个地址,最后竟然不搞了,这怎么能行呢?

嘿嘿,这是难不倒咱们的

在根目录下创建一个 wap/index.php, 里边就一句话

cat >>wap/index.php<<EOF
<?php
    header("Location: http://klwang.info/?mobile=1");
?>
EOF

这样,用户就可以正常访问 klwang.info/wap
总算前面说了那么多没有骗人,也不用收回那么多的废话(打字都打了好久呢)

无图无真相,上两张截图,看看klwang.info在手机中长得啥样

wap-klwang-index
主页效果图

wap-klwang-wordpress-mobile
本文效果图

总结:

正式动手前,一定要多观察,说不定别人已经做了你要做的事情了呢

    分享到:

本文固定链接: http://klwang.info/wordpress-enable-mobile-access/ | 数据库|Linux|软件开发

该日志由 klwang 于2013年06月08日发表在 wordpress 分类下, 你可以发表评论,并在保留原文地址及作者的情况下引用到你的网站或博客。
原创文章转载请注明: 让 wordpress 支持手机访问 | 数据库|Linux|软件开发
关键字: , ,

让 wordpress 支持手机访问:等您坐沙发呢!

发表评论

*
快捷键:Ctrl+Enter