Я знаю, что этот вопрос задан миллион раз, но я не могу найти ответ, который либо подгоняет версию WordPress сейчас, и / или мой конкретный случай.
У меня есть сайт WordPress с установленным на нем Buddypress.
Я хочу, чтобы: – Не вошедшие пользователи могут видеть только страницу wp-login.php – Записанные пользователи могут получить доступ ко всему сайту
Я просто не могу понять это, это невозможно. Либо я меняю адрес сайта, либо назначаю страницу, либо fuctions … Ничего не работает, все время ошибка или ошибка 404 страницы и т. Д. …
В принципе: вы приходите на сайт, вы не вошли в систему = Wp-Login.php, если вы вошли в систему на странице "members"
Спасибо !
Существует много разных способов сделать это на основе того, каково ваше конечное желание (используйте страницу входа wp, пользовательскую страницу входа и т. Д.). Вы можете попробовать это в своем файле functions.php:
if ( ( is_single() || is_front_page() || is_page() || is_archive() || is_tax() ) && ! is_page( 'login' ) && ! is_page('register') && ! is_user_logged_in() ) { auth_redirect(); }
Или вы можете использовать любое количество плагинов там, например https://wordpress.org/plugins/wp-require-login/ или https://wordpress.org/plugins/wp-force-login/
ОБНОВИТЬ
Теоретически, вы можете просто использовать это, просто не тестировали …
if( ! is_page( 'login' ) && ! is_page('register') && ! is_user_logged_in() ) { auth_redirect(); }
Взгляните сюда
https://wordpress.org/support/topic/how-to-auth_redirect-to-specific-page
<?php if( !is_user_logged_in() ) { wp_redirect('http://somepagehere'); exit; } ?>
Вы также можете добавить это в свой файл functions.php вместо того, что я сказал ранее:
function admin_redirect() { if ( !is_user_logged_in()) { wp_redirect( home_url('/{custom page goes here}/') ); exit; } } add_action('get_header', 'admin_redirect');
Просто используйте этот плагин wordpress https://wordpress.org/plugins/restrict-user-access/, чтобы контролировать, кто может / не может получить доступ к вашему сайту.
Вы можете получить тонны подобных плагинов, если вы поиграете в Google.
Что вы хотите, чтобы проверить, не пытается ли пользователь в настоящее время пытаться войти или зарегистрироваться, если не перенаправить их на любую страницу.
if ( !is_user_logged_in() && !is_page( 'login' ) && ! is_page('register') ) { //redirect user, create account with them, do a hoola-hoop }
Обязательно поместите этот код в свой файл страницы перед get_header ();