移动用户在登录时重定向到不同的页面,除非链接到其他帖子

时间:2016-08-16 作者:LucyMo

我有一个只通过登录访问的响应式网站。所有页面都可以通过手机/桌面访问,只是我们认为为手机用户提供不同的页面更合适。

我之前要求将移动用户重定向到另一个登录页,得到了这个答案(效果很好):

add_filter(\'login_redirect\', function($to, $request, $user)
{
    if ( wp_is_mobile() ) $to = home_url().\'/mobile-news\';

    return $to;
}, PHP_INT_MAX, 3);
目前,如果用户链接到新闻文章(例如,site.com/激动人心的新闻文章),他们将看到登录页面(这是正常的),但是一旦他们登录重定向请求,就会被忽略,而改为(site.com/mobile news)页面。

我需要对此进行调整,以便如果他们链接到特定的新闻项目,他们将转到那里,而不是移动新闻页面。

我一直在尝试不同的解决方案,但它似乎完全忽视了。这是我目前拥有的,但无法正常工作:

add_filter(\'login_redirect\', function($to, $request, $user)
{
    if ( wp_is_mobile() ) {
      if ($_GET[\'redirect_to\'] != \'\') {
          $to = $_GET[\'redirect_to\'];

      }
      else {
          $to =  home_url().\'/mobile-news\';
      }
    }
    return $to;
}, PHP_INT_MAX, 3);
以前有人遇到过这个问题吗?我不知道我哪里出了问题!

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

试试这个-

add_filter(\'login_redirect\', function($to, $request, $user)
{
    if ( wp_is_mobile() && $request == null ) {
        return home_url().\'/mobile-news\';
    }
    return $to;
}, PHP_INT_MAX, 3);
未经测试,但应能正常工作。

Note: 使用像这样的URLhome_url().\'/mobile-news\' 我认为这不是个好主意。

使用get_permalink( $post_id ) 相反哪里$post_id 是的IDhome_url().\'/mobile-news\' 页因为,如果该页面的slug发生了变化,访问者将看到404页面!