改变主题=改变手机访问者的主页?

时间:2013-07-25 作者:speedypancake

我正在尝试创建一个wp网站的移动友好版本。我正在使用“任何移动主题切换器”切换到另一个工作正常的(移动)主题。

我还创建了一些其他关键页面(主页、联系人和新闻),这些页面是经过大量编辑(较短)的桌面主题内容,并将其添加到仅限移动设备的菜单中。同样,这很有效。

我试图解决的问题是,如何避免有人使用移动设备登录到桌面版的主页?

我无法在我的移动主题文件中设置不同的主页/首页,因此。。

是否可以将移动设备重新定向到我的备选“移动主页”?如果可能,如果需要,保留查看完整桌面版本的选项。

我看到《codex》描述了一些有用的代码,但我需要帮助才能使它们一起工作。从人类的角度来看,我想我需要的是这样的东西-

如果是主页,如果是移动的,则重定向到http://mysite.com/mobile-homepage

非常感谢

3 个回复
最合适的回答,由SO网友:speedypancake 整理而成

我从Pontus的答案和WP Answers上的一个稍有不同的问题的答案中拼凑了以下代码-这与我的移动主题切换插件一起工作,因此当移动用户访问该网站时,他们会被重定向到一组新的“移动友好”页面,并查看我的新响应移动主题,以及可折叠的移动页面菜单:)

function so16165211_mobile_home_redirect(){
if( wp_is_mobile() && is_front_page() ){
   wp_redirect( \'/mobile-home\' ); 
    exit;
}
}
add_action( \'template_redirect\', \'so16165211_mobile_home_redirect\' );

SO网友:Pontus Abrahamsson

您可以为此制作一个简单的函数,检查是否是移动的(http://codex.wordpress.org/Function_Reference/wp_is_mobile). 并使用重定向wp_redirect() http://codex.wordpress.org/Function_Reference/wp_redirect

add_action(\'wp_head\', \'redirect_mobile\');
function redirect_mobile()
{
   if ( wp_is_mobile() ) 
   {
       wp_redirect( \'http://url\' ); 
       exit; 
   }
}
这是未经测试的,但应该有效。将其添加到主题中functions.php 文件

SO网友:gmazzap

类似但无重定向:

function template_choose() {

  $part = wp_is_mobile() ? \'mobile\' : null;

  if( is_front_page() ) {

    get_template_part( \'home\', $part );

    // if not mobile search (in this order) for
    // {$childthemepath}/home.php
    // {themepath}/home.php

    // if mobile search (in this order) for
    // {$childthemepath}/home-mobile.php
    // {$themepath}/home-mobile.php
    // {$childthemepath}/home.php
    // {$themepath}/home.php
    exit();

  } elseif ( is_page() ) { // same logic can be used with different Conditional Tags

    get_template_part( \'page\', $part );
    exit();

  }

}
add_action( \'template_redirect\', \'template_choose\' );

结束

相关推荐

Infamous admin login redirect

我有一个安装了域映射插件的多站点。所有域都工作正常,除了。。。其中一个站点位于子目录(运行Magento的主站点)上。我在WP子目录的原始安装目录中添加了一个符号链接(/wp/ 因为我需要改变.htaccess 不同重写库的文件。问题是wp-admin 不起作用。登录后,页面将刷新(使用redirect_to= 然后什么也没发生。经过进一步研究,我注意到站点尝试设置的cookie是针对父站点域的。。。