How to redirect non logged in users to Login page on Wordpress?

狂风中的少年 提交于 2019-11-28 12:47:51

问题


I know this is a question asked million times but I can't find an answer that is either fitting the version of Wordpress now and/or my particular case.

I have a Wordpress website with Buddypress installed on it.

I want that : - Not logged in users can see only the page wp-login.php - Logged in users can access the whole website

I just can't figure it out, it is impossible. Either I change the site address or assign a page, or fuctions... Nothing works, all the time an error or a 404 page error etc...

Basically : you arrive on the website, you are not logged in = Wp-Login.php, if you are logged in page "members"

Thank you !


回答1:


There are a lot of different ways to do this based on what your ultimate goal is (use WP login page, a custom login page, etc...). You can try adding this to your theme's functions.php file:

if ( ( is_single() || is_front_page() || is_page() || is_archive() || is_tax() )
    && ! is_page( 'login' ) && ! is_page('register') && ! is_user_logged_in() ) {
    auth_redirect(); 
}

Or you can use the plugin, Force Login

UPDATE

Theoretically, you can probably just use this, just haven't tested...

if( ! is_page('login') && ! is_page('register') && ! is_user_logged_in() ) {
    auth_redirect(); 
}



回答2:


Take a look here

https://wordpress.org/support/topic/how-to-auth_redirect-to-specific-page

<?php
if( !is_user_logged_in() ) {
    wp_redirect('http://somepagehere');
    exit;
}
?>

You can also add this to your functions.php file instead of what I said before:

function admin_redirect() {
if ( !is_user_logged_in()) {
   wp_redirect( home_url('/{custom page goes here}/') );
   exit;
}
}
add_action('get_header', 'admin_redirect');



回答3:


Just use this wordpress plugin https://wordpress.org/plugins/restrict-user-access/ to control who can/ can't access your website.

You may get tons of similar plugins if you googled it.




回答4:


What you want it to check if the user is not currently trying to login or register, if not redirect them to whatever page you'd like.

if ( !is_user_logged_in() && !is_page( 'login' ) && ! is_page('register') ) {
   //redirect user, create account with them, do a hoola-hoop
}

Be sure to place this code in your page file before get_header();



来源:https://stackoverflow.com/questions/34187685/how-to-redirect-non-logged-in-users-to-login-page-on-wordpress

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!