问题
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