我如何将移动用户重定向到不同的URL,同时又允许他们返回到完整站点

时间:2012-01-13 作者:TJ Sherrill

这很简单:如何将移动用户重定向到/移动,但仍然允许他们单击“完整站点”按钮并查看完整站点,而无需再次重定向回移动站点?

我玩过很多插件,它们说自己可以做到这一点,但似乎并没有一个能处理第二步。它们重定向到/手机。但如果用户想要访问完整的站点,它会尝试然后重定向回移动。

我正在运行WP3。0.1

4 个回复
最合适的回答,由SO网友:Rob Vermeer 整理而成

function mobile_redirect() {
    if (isset($_COOKIE["redirected"]) && $_COOKIE["redirected"])
        return;
    global $is_iphone;
    if( isset($is_iphone) && $is_iphone ) {
        wp_redirect( \'/mobile/\' );
        setcookie("redirected", true);
        exit;
    }
}
add_action(\'init\', \'mobile_redirect\');
此代码将每个移动访问者重定向到/mobile/,然后设置重定向用户的cookie。如果设置了cookie,则不会发生重定向。因此,如果用户再次访问您的站点,它将不会重定向到移动url。

如果url中有一个变量,如/?v=桌面,然后如果访问该url,它将设置cookie,不再重定向。

更新

使用内置$is\\u iphone变量;泰晤士河至凯撒。

顺便说一句:每个移动设备都使用一个奇怪的变量名称$is\\U mobile是一个更好的名称。

SO网友:kaiser

检查$is_iphone; 变量然后自己重定向。

SO网友:Matt

我同意肖恩的观点。如果你把当前的主题设计得很好,你可以让移动设备使用不同的样式表。所以基本上你只需要一个主题,两个不同的风格变体。

用于根据桌面或移动设备站点访问更改样式表的示例代码:

// Function in functions.php file

function is_mobile_device(){
    $device = \'\';

    if( stristr($_SERVER[\'HTTP_USER_AGENT\'],\'ipad\') ) {
        $device = "ipad";
    } else if( stristr($_SERVER[\'HTTP_USER_AGENT\'],\'iphone\') || strstr($_SERVER[\'HTTP_USER_AGENT\'],\'iphone\') ) {
        $device = "iphone";
    } else if( stristr($_SERVER[\'HTTP_USER_AGENT\'],\'blackberry\') ) {
        $device = "blackberry";
    } else if( stristr($_SERVER[\'HTTP_USER_AGENT\'],\'android\') ) {
        $device = "android";
    }

    if( $device ) {
        return true; 
    } return false; {
        return false;
    }
}

 // Code in header.php

<?php if (is_mobile_device()) { 
      echo \'MOBILE STYLESHEET\' 
   } else {
      echo \'DESKTOP STYLESHEET\' }
?>

SO网友:blogjunkie

我正在我的网站上使用Obox Mobile(http://clickwp.com)即使使用W3 Total Cache,它也能很好地工作。您可以毫无问题地切换到完整站点。

尽管我同意,如果你正在寻找一个简单的解决方案,那么一个响应性主题可能是最好的方式。正如你在我的网站上看到的,sideshow画廊无法扩展。一个构建良好的响应主题将考虑这些因素,因为它不依赖第三方插件来提供移动功能。

也就是说,在我有时间和金钱让我的网站响应之前,Obox Mobile对我来说是一个很好的解决方案。如果你想购买,请使用我的会员链接,谢谢!

http://www.obox-design.com/premium-wordpress-themes.cfm?afId=DB7FA9B3&bannerId=40

结束

相关推荐

MobilePress无法翻译短码

几天前,我发布了我网站的移动版。看起来不错。我曾经mobilepress 同样如此。但我发现shortcodes 正在显示为简单文本。是否有其他插件可以构建高效的移动版本,包括短代码翻译