Redirect if not logged in?

时间:2014-08-15 作者:alexwc_

我尝试过将未登录的用户重定向到特定页面。最终,他们访问的前端页面应该无关紧要,但应该重定向到选择作为登录页面的任何页面(我假设这是wp\\U重定向中的URL)。我仍然需要访问wp登录和仪表板等。。。

我在函数中放置了以下代码。php,但不起作用。

function my_redirect() {    
   if ( $_SERVER[\'HTTP_HOST\'].$_SERVER[\'REQUEST_URI\'] == \'mybigfatsite.com/\' ) {
    if ( ! is_user_logged_in() ) {
       wp_redirect( \'mybigfatsite.com/landing/\' );
       exit;
    }
}
}
add_action( \'init\', \'my_redirect\' );
谢谢你的帮助!

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

这个is_login_page() 函数取自here

function is_login_page() {
    if ( $GLOBALS[\'pagenow\'] === \'wp-login.php\' && ! empty( $_REQUEST[\'action\'] ) && $_REQUEST[\'action\'] === \'register\' )
        return true;
    return false;
}

function my_redirect() {  
    //if you have the page id of landing. I would tell you to use if( is_page(\'page id here\') instead
    //Don\'t redirect if user is logged in or user is trying to sign up or sign in
    if( !is_login_page() && !is_admin() && !is_user_logged_in()){
        //$page_id is the page id of landing page
        if( !is_page($page_id) ){
            wp_redirect( get_permalink($page_id) );
            exit;
        }
    }
}
add_action( \'template_redirect\', \'my_redirect\' );

结束

相关推荐

If is_single in functions.php

我希望删除wpautop筛选器仅对我博客中的帖子起作用。因为在某些页面,我需要autop,而在某些页面,我需要它不在那里。我使用以下规则,这是在我的主题函数中。php:remove_filter( \'the_content\', \'wpautop\' ); 因为我只想在博客上看到它,所以我在考虑if语句,我在Wordpress中搜索了条件标记页面,发现我可以使用is\\u single。但它不起作用。这是我现在使用的代码。if(is_single() ){ remove_f