Redirect to login page

时间:2016-05-19 作者:Mr_Green

我是wordpress的新手。我正在上运行wordpress安装程序http://localhost/wordpress/. 我现在面临两个问题:

  • 只有登录的用户才能访问该网站。因此,我试图使用以下代码将来宾从主页重定向到登录页,但代码不知何故不起作用:
路径:wp-content/themes/twentysixteen/header.php

        <?php
            if(get_permalink() != wp_login_url() && !is_user_logged_in()){
                wp_redirect( wp_login_url() ); exit;
            }
        ?>
由于上面的代码不起作用,我尝试通过单击login 按钮以下是工作代码:

<?php
    if(get_permalink() != wp_login_url() && !is_user_logged_in()){
        // wp_redirect( wp_login_url() ); exit;
?>
        <a href="<?php echo wp_login_url( get_permalink() ); ?>" title="Login">Login</a>
<?php
    }
?>
根据以上代码,当来宾单击登录时,他/她将重定向到登录页面,当用户登录时,页面将重定向到wordpress admin,即wp-admin 而不是主页,即http://localhost/wordpress.

    我想做的是:如果用户未登录,请将来宾从主页重定向到登录页

4 个回复
SO网友:cybmeta

如果我理解正确,您需要检查用户是否已登录,如果未登录,请将其重定向到登录页面。如果用户成功登录,则应将其重定向到试图查看的页面。您可以使用redirect 的参数wp_login_url().

此代码应正常工作(未测试):

add_action( \'init\', \'cyb_restrict_guest_access\' );
function cyb_restrict_guest_access() {
    global $wp;
    if( ! is_user_logged_in() && ! cyb_is_login_page() ) {
        wp_redirect( wp_login_url( site_url( $wp->request ) ) );
        exit;
    }
}

function cyb_is_login_page() {
    return in_array($GLOBALS[\'pagenow\'], array(\'wp-login.php\'));
}

SO网友:Balas

您可以使用以下代码检查主页或不检查主页:

        if(is_home() && !is_user_logged_in()){
            wp_redirect( wp_login_url() ); exit;
        }

SO网友:Andy Macaulay-Brook

这在你的标题中。php或在任何模板中的get\\u header()调用之前,都会将未登录且试图访问站点任何页面的用户重定向到登录页面:

if( !is_user_logged_in() ) {
    wp_redirect( wp_login_url() );
    exit;
}
这将在登录后将所有用户重定向到主页:

function tbdn_login_redirect( $redirect_url ) {

    return home_url();

}

add_filter( \'login_redirect\', \'tbdn_login_redirect\' );
请注意,如果登录用户知道URL或其登录启用了管理栏,则不会限制其访问管理屏幕。

SO网友:Siddika

如果您的“登录”页面是“页面模板”,则可以使用template_redirect\' 钩您的functions.php 将为您提供这些:

如果用户未登录,请将来宾从主页重定向到登录页面

add_action( \'template_redirect\', \'ft_redirect_user\' );
function ft_redirect_user() {
  //Redirect the guest from home page to login page, if the user isn\'t logged in. And redirect the user from login page to home page when user logs in.
  if ( ! is_user_logged_in() && is_front_page() ) {
    $return_url = esc_url( home_url( \'/login-page-slug/\' ) ); //change the \'login-page-slug\' to your actual page slug of your login page.
    wp_redirect( $return_url );
    exit;
  } elseif ( is_user_logged_in() && is_page( \'login-page-slug\' ) ) { //change the \'login-page-slug\' to your actual page slug of your login page.
    $return_url = esc_url( home_url(\'/\') );
    wp_redirect( $return_url );
    exit;
  }
}

相关推荐

Redirect Css files to https

在哪里可以找到负责调用Css文件的文件,并测试它们的链接是http还是https?我想测试请求是否为https,如果是,那么很好,如果不是,请将其更改为https在函数中。php我找到了负责调用主题Css的函数,下面是它的代码:if (!function_exists(\'jobcareer_front_scripts\')) { function jobcareer_front_scripts() { global $jobcareer_options;